即使应用程序被“杀死”(滑动或单击“清除所有应用程序”按钮),我的应用程序(或至少其中的一部分)仍然在运行。
在包含片段的主活动中,我重写了onBackPressed(编辑:重写是为了首先询问用户是否想退出系统,只有在他们选择退出后才使用下面的函数)来执行以下操作:
public void exit()
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
当我以通常的方式退出应用程序(使用上面的“退出”方法),然后重新进入应用程序时,应用程序将重新打开,并将从停止的地方继续(上一个可见的片段出现)。
当我试图通过设备的“最近应用程序”屏幕杀死应用程序(也许它并没有真正被杀死?)或为了调试目的而重新编译而没有退出应用程序时,我会看到一片黑屏,而不是启动画面……这让我怀疑应用程序的某些部分仍在后台运行。此外,大约每隔几分钟,我会收到消息:“未响应。是否要关闭它?”
我的问题是:
Isn't this line supposed to kill all activities (including their fragments)? Or do I have to use the finish() method? (Not that it's a bad thing, I'm just wondering why the activity didn't get killed).
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
Why would the app keep running even after I tried to kill it? And how do I make sure it is completely killed?