удаление активности из стека диспетчера задач в android

Я работаю над приложением Android. Когда мое приложение запущено, и я нажимаю кнопку последних приложений на телефоне, вызывается метод Activity onPause(). Внутри этого onPause я вызываю finish() . Таким образом, деятельность уничтожается.

Но он все еще виден в списке последних приложений.

Как мне убедиться, что он не указан в списке последних приложений, когда я уничтожаю свою активность из onPause().


person Pardeep Kr    schedule 20.01.2016    source источник
comment
Почему вы хотите явно завершить свое приложение, когда пользователь переводит его в фоновый режим? Это ужасно.   -  person Xaver Kapeller    schedule 20.01.2016


Ответы (4)


Попробуйте сделать

<activity android:name=".MainActivity"
        android:excludeFromRecents="true" ...>

в объявлении активности вашего AndroidManifest.xml.

получить дополнительную информацию из официальной документации

Следует ли исключить задачу, инициированную этим действием, из списка недавно использованных приложений («последние приложения»). То есть, когда это действие является корневым действием новой задачи, этот атрибут определяет, не должно ли задание отображаться в списке последних приложений. Установите «true», если задачу следует исключить из списка; установите "false", если он должен быть включен. Значение по умолчанию неверно".

когда вы хотите иметь специальные свойства для действия при его запуске, вы указываете специальные флаги для намерения. В этом случае FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS.

Перейдите по ссылке.

person Amit Vaghela    schedule 20.01.2016
comment
я пробовал с небольшим примером, ваш работает отлично. Я не пробовал основу сценария. - person learner; 20.01.2016

Причина может заключаться в том, что уничтожается только ваша активность, а не экземпляр приложения. Android ждет, когда пользователь снова откроет приложение. Чтобы полностью завершить приложение, вы можете использовать вышеуказанный API 16 this.finishAffinity() .

Это завершит текущую деятельность и все остальные под ней. Как говорит док

Завершите это действие, а также все действия непосредственно под ним в текущей задаче, имеющие такое же сходство

person theJango    schedule 20.01.2016
comment
ваш не работает, все еще остается последнее приложение - person learner; 20.01.2016

используйте FinishAndRemoveTask() вместо Finish() или FinishAffinity()

person ayoub laaziz    schedule 16.09.2020

использовать

finish();

когда вы переходите к следующему действию, последнее действие заканчивается

person Muhammad Asad    schedule 16.09.2020