Есть ли способ сказать Android: «Если пользователь выходит из этого действия, нажимая клавишу« home », немедленно завершает () каждое действие в стеке, которое когда-либо было связано с этим приложением?» Или, в качестве альтернативы, способ для Activity, чей метод onPause () был принудительно вызван пользователем, нажав "home", чтобы завершить () не только себя, но и Activity, которая также запустила его?
У меня проблема с рабочим процессом. Пользователи моего приложения в основном переключаются между основным окном «Активность» и «подробно». Они видят что-то в основной Деятельности, нажимают на нее, дочерняя деталь «Активность» порождается, они используют это некоторое время, а затем наносят ответный удар, чтобы вернуться к основной Деятельности. Я не могу завершить () основное действие после запуска дочернего действия, потому что тогда кнопка «Назад» перестала бы работать. Проблема заключается в том, что теперь, если пользователь завершает работу, нажимая клавишу home в дочернем Activity, он оставляет за собой родительское Activity зомби. Если пользователь перезапускает приложение, использует его какое-то время, а затем явно запускает выключение, нажимая меню-> выход из основного действия (где я убиваю службу, затем вызываю финиш ()), действие исчезает, и пользователь сбрасывается в активность зомби с предыдущего запуска (который быстро падает, если пользователь пытается что-то сделать, потому что фоновая служба, от которой он зависит, уже была закрыта, а все BroadcastReceivers, которые в противном случае прослушивали, были удалены, поэтому его крики о помощи не слышны).
Я на самом деле немного озадачен, потому что у меня уже есть android: launchMode = "singleTask", расположенный в теге manifest для моей активности запуска, и я подумал, что launchMode = "singleTask" явно должен был предотвратить такие вещи, как это убедившись, что все длительные действия предыдущего запуска были благополучно мертвы до того, как они возобновились.