【发布时间】:2012-04-07 23:02:48
【问题描述】:
我正在使用 Android 开源代码。我正在修改 Launcher 应用程序,以便可以通过应用程序更改 Launcher 和主屏幕图标。
现在,我有一个问题。为了在应用程序中按下“应用新图标”按钮后启动器图标刷新,我需要重新启动启动器 - onDestroy,然后是 onCreate。
在插入日志后观察开源工作流,我观察到,在Locale更改期间重新启动启动器的情况下会执行以下回调序列。
我了解,区域设置更改在某种程度上与 ACTION_CONFIGURATION_CHANGED 相关,每当发生这种情况时,启动器都会使用日志中给出的顺序重新启动。
为了证实我的观点,即启动器在区域设置更改时重新启动,我进行了以下测试。我做了“应用新图标”并检查了主屏幕,图标没有改变,然后我改变了语言并回到主屏幕,图标被改变了!此外,日志清楚地表明,Launcher 在 Locale 更改期间重新启动。
01-01 00:02:19.960: INFO/ActivityManager(264): app/com.android.launcher[RESUMED] app.idle/true ...resumeTopActivityLocked
01-01 00:02:19.968: DEBUG/Launcher(564): ****Inside onRetainNonConfigurationInstance()****
01-01 00:02:19.968: DEBUG/Launcher(564): ****Inside onDestroy()****
01-01 00:02:19.968: DEBUG/LauncherApplication(564): setLauncher
01-01 00:02:19.968: DEBUG/Launcher(564): ****Inside unbindWorkspaceAndHotseatItems()****
01-01 00:02:19.992: DEBUG/Launcher(564): ****Inside onWindowVisibilityChanged()****
01-01 00:02:19.992: DEBUG/Launcher(564): ****Inside updateRunning()**** autoAdvanceRunning = false
01-01 00:02:19.992: DEBUG/Launcher(564): ****Inside onDetachedFromWindow()****
01-01 00:02:19.992: DEBUG/Launcher(564): ****Inside updateRunning()**** autoAdvanceRunning = false
01-01 00:02:19.992: DEBUG/Launcher(564): ****Inside AppWidgetResetObserver()****
01-01 00:02:19.992: DEBUG/Launcher(564): ****Inside onCreate()****
我的问题是,在外部应用程序中按下“应用新图标”后,我可以显式调用广播 Action ACTION_CONFIGURATION_CHANGED 吗?如果是,启动器将使用我提供的日志序列重新启动,并且我的新图标出现在主屏幕中,我的问题已解决。
非常感谢任何帮助。
【问题讨论】:
标签: android android-layout android-intent android-widget android-ndk