как перезапустить приложение на устройствах Android и более поздних версий? - PullRequest
0 голосов
/ 29 января 2019

Я могу перезапустить приложение на устройствах ниже android oreo. Мой вопрос в том, как выполнить перезапуск на устройствах oreo и более поздних версий, используя Kotlin или Java ??

val intent = Intent(applicationContext, MainActivity::class.java)
    val mPendingIntentId = 1000
    val mPendingIntent = PendingIntent.getActivity(applicationContext, mPendingIntentId, intent, PendingIntent.FLAG_CANCEL_CURRENT)
    val mgr = applicationContext.getSystemService(Context.ALARM_SERVICE) as AlarmManager
    mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent)
    System.exit(0)

Ответы [ 2 ]

0 голосов
/ 29 января 2019

System.exit (0) - не лучший подход, так как вы не можете ожидать состояния текущих потоков, работающих под вашим приложением, это может привести к повреждению файла.Попробуйте этот кусок:

Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

Runtime.getRuntime().exit(0);
0 голосов
/ 29 января 2019

В вашем вызове Activity recreate(); Это приведет к воссозданию активности в новом экземпляре.

Документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...