Я заметил, что вы просили решение, не основанное на finish()
, но мне интересно, может ли оно все же помочь.
Я отслеживал, поднимается ли флаг выхода со статической переменной класса, которая сохраняется в течение всего срока службы приложения.В каждом соответствующем действии onResume()
используйте
@Override
public void onResume() {
super.onResume();
if (ExitHelper.isExitFlagRaised) {
this.finish();
}
}
Класс ExitHelper
public class ExitHelper {
public static boolean isExitFlagRaised = false;
}
Скажем, в mainActivity пользователь нажимает кнопку для выхода - выможно установить ExitHelper.isExitFlagRaised = true;
, а затем finish()
.После этого другие соответствующие действия, которые возобновляются автоматически, также будут завершены.