我的应用程序中有一点需要完全杀死应用程序。我用它来做到这一点:
protected void exitApp()
{
Dialogs.DismissAll();
finish();
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
}
我的问题是,这只会有效。在其他时候,当设备屏幕被调用时,设备屏幕变为黑色,并且不会进入设备主屏幕。要从这一点进入主屏幕,我必须按主页按钮。有什么想法吗?
(请不要告诉我这段代码如何违反Android开发指南。我已经阅读了有关它的所有信息,并认为这是给客户提供他们想要的最佳方法)
由于
答案 0 :(得分:1)
您是否检查过堆栈中的所有活动是否已被销毁?
答案 1 :(得分:0)
不记得是不是那样。它是否安全地杀死或显示一个力量关闭oon杀死过程。 试着用这个:
ActivityManager aM = (ActivityManager)urActivityInstance.getApplicationContext().getSystemService("activity");
aM.restartPackage(urActivityInstance.getApplicationContext().getPackageName());
之后你可以添加你的killprocess块,所以它不会出现在任务管理器中。
答案 2 :(得分:0)
在我的程序中,我使用此代码关闭应用程序。
MyActivity.this.finish();
答案 3 :(得分:0)
你不需要使用finish()或android.os.Process.killProcess(pid) 只需使用:
finishAffinity();
此方法完成此活动以及紧接其下的所有活动。 这意味着它真的关闭了应用程序! 这是完整的信息:
finishAffinity():完成此活动以及当前任务中具有相同亲缘关系的紧接其下的所有活动。这通常在应用程序可以启动到另一个任务时使用(例如从它理解的内容类型的ACTION_VIEW),并且用户已经使用向上导航切换出当前任务并进入其自己的任务。在这种情况下,如果用户已导航到第二个应用程序的任何其他活动,则应将所有这些活动作为任务切换的一部分从原始任务中删除。
请注意,此结尾不允许您将结果传递给上一个活动,如果您尝试这样做,则会抛出异常。