Я хочу всегда запускать запуск программы после того, как приложение переходит в фоновый режим. Я попробовал android:clearTaskOnLaunch="true", но это не сработало. Как я могу это сделать? Например, у меня есть действия A, B, C, D, E, F . A - активность средства запуска. Теперь я открываю приложение, поэтому действие вызывается, затем A> B> C . теперь сворачиваю приложение. Теперь я открываю приложение с помощью значка, поэтому приложение запускается с C , но я хочу, чтобы оно запускалось с A , как я могу это сделать? некоторые сказали, что используют намерение onResume с Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK . но что, если я нажму кнопку «Назад», тогда будет вызвано onResume и мое приложение начнется с действия A .... так что это не работает .. какие-либо решения ???

-1
Harin Kaklotar 24 Дек 2015 в 15:53

3 ответа

Лучший ответ

Вы можете проверить, что приложение находится на переднем плане или в фоновом режиме, и когда приложение переходит в фоновое состояние, в то же время выполните некоторую логику, которая, когда ваше приложение переходит на передний план, всегда будет отображать корневую активность.

Как определить, в каком состоянии находится приложение, хорошо объяснено здесь

1
Dhiraj 24 Дек 2015 в 13:18

Это происходит потому, что устройство хранит данные о приложении. На короткое время хранятся данные. если вы хотите запустить приложение из класса rot. используйте службу с приложением, чтобы всякий раз, когда ваше приложение переходит в фоновый режим и приостанавливает работу, выберите свое действие, и это будет проще.

0
Urvish Modi 24 Дек 2015 в 13:22

Когда вы запускаете действие B, используйте эти флаги. Таким образом, действия B и C всегда будут в отдельном стеке. Это означает, что когда кто-то запускает действие A с главного экрана, он всегда будет видеть действие A.

Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK

Intent intent = new Intent(context, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(intent);

Также это может помочь, вы можете добавить этот флаг в свою корневую активность.

<activity
  android:name=".ui.MainActivity"
  android:clearTaskOnLaunch="true"/>
1
tasomaniac 24 Дек 2015 в 13:44