Я работаю с открытым исходным кодом Android.Я изменяю приложение Launcher таким образом, чтобы значки Launcher и домашнего экрана можно было изменить через приложение.
Теперь у меня возникла проблема.Чтобы иконки Launcher обновлялись после нажатия кнопки «Применить новые значки» из приложения, мне нужно перезапустить Launcher - onDestroy, затем onCreate.
Наблюдая за рабочим процессом с открытым исходным кодом после вставки журналов, я заметил, что в случае перезапуска программы запуска во время изменения локали выполняется следующая последовательность обратных вызовов.
Я понимаю, что смена локали в некоторыхкстати, связанный с ACTION_CONFIGURATION_CHANGED и всякий раз, когда это происходит, Launcher перезапускается с использованием последовательности, приведенной в журнале.
Чтобы подтвердить мою точку зрения, что Launcher перезапускается при изменении локали, я провел следующий тест.Я сделал «Применить новые значки» и проверил домашний экран, значки не изменились, затем я изменил язык и вернулся на домашний экран, и значки были изменены!Кроме того, в журнале четко указывается, что Launcher перезапускается во время смены локали.
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()****
У меня возникает вопрос: после нажатия «Применить новые значки» из внешнего приложения я могу явно вызвать Broadcast Действие ACTION_CONFIGURATION_CHANGED ?Если да, модуль запуска будет перезапущен с использованием заданной мной последовательности журнала, и у меня появятся новые значки на главном экране, и моя проблема будет решена.
Любая помощь очень ценится.