【发布时间】:2019-01-29 05:00:55
【问题描述】:
我正在构建一个应用程序,它使用一些用户可以在其中导航的活动,或者使用一个特定的活动,当使用深度链接时启动应用程序。在此 DeeplinkActivity 中,我有一个按钮,应用程序应通过该按钮退出整个应用程序,而不是将其置于后台。 我尝试了以下代码,它只关闭了应用程序,但它仍然留在后台?!
public void onStopButton(View view) {
log.info("UI -> Stop this app");
// this.finishAffinity();
android.os.Process.killProcess(android.os.Process.myPid());
// finish();
System.exit(0);
}
我尝试了各种建议的组合,但没有一个真正退出应用程序。有人有其他(工作)代码建议吗? 我设置了 minSdkVersion=19 和 targetSdkVersion=26
【问题讨论】:
-
“留在后台”究竟是什么意思?您的意思是该任务仍保留在最近的任务列表(也称为概览屏幕)中吗?
-
我的意思是虽然应用程序从主屏幕上明显消失了,但我仍然可以在后台应用程序列表中看到它,如果我从这个列表中选择它,它将变为活动状态。所以我认为该应用程序并没有真正“被杀死/停止”。我确实记得在 StackOverflow 上的某个地方读到有人说 Android 没有任何手段/机制来真正杀死正在运行的应用程序。如果您寻找“如何通过代码停止应用程序”问题的答案,我会看到很多“解决方案”声称我测试的上述代码部分之一解决了该问题。它绝对不适用于我的设置(目前)。
-
“我仍然可以在后台应用程序列表中看到它”——这个“后台应用程序列表”准确地说是什么?您是指概览屏幕,以前称为最近任务列表吗?如果是这样,那不是后台应用程序列表。它是最近使用的应用程序列表。出现在概览屏幕中并不意味着应用程序有正在运行的进程。
-
抱歉,我实际上不是 Android(超级)用户!我的意思是我的已关闭应用程序似乎仍然可见(或在背景中)的任务列表,我(和我的首选用户/观众)可能会对此感到困惑。那么我需要寻找一些代码解决方案来清除最近的任务列表吗?
标签: android exit activity-finish deeplink system.exit