Есть ли способ очистить все задачи в приложении (Android)? - PullRequest
0 голосов
/ 16 января 2020

Быстрый вопрос, просто хочу узнать, есть ли у меня 2 задачи в моем проекте. Есть ли способ очистить их обоих в одном go. Это потому, что когда я пытаюсь очистить обе задачи, чтобы закрыть свое приложение, только одна очищается, а другая все еще жива, что мешает мне выйти из приложения.

finishAffinity();
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);

Есть предложения, чтобы решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Если вы действительно хотите выйти из обеих задач, вам нужно сделать это следующим образом:

Когда вы хотите выйти, вы отправляете широковещательную рассылку Intent с установленным значением ДЕЙСТВИЯ, например, "my.package.name.QUIT" .

Во всех ваших действиях объявляйте и регистрируйте слушателя, например:

registerReceiver(myReceiver, new IntentFilter("my.package.name.QUIT"));

Когда вызывается onReceive() вашего BroadcastReceiver, вам следует позвонить finish().

Это обеспечит завершение всех ваших действий sh, независимо от того, где они выполняются.

ПРИМЕЧАНИЕ. Я все еще не понимаю, почему у вас есть несколько задач, и я думаю, что вам нужно решить эту проблему. Решение здесь на самом деле просто взломать, потому что вы, вероятно, не хотите нескольких задач.

0 голосов
/ 16 января 2020

Да, вы можете использовать:

FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP
FLAG_ACTIVITY_CLEAR_TASK
FLAG_ACTIVITY_NEW_TASK

или использовать android:noHistory="true" для операции spla sh в файле манифеста.

...