Java Android中的System.exit等价物?

Java Android中的System.exit等价物?,java,android,Java,Android,我知道不应该打这个电话,但目前是唯一能够足够快地停止活动的事情 基本上,从后台返回应用程序(或使用DDMS“终止应用程序”按钮)后,一些静态变量为空。我想重新启动该活动,以停止崩溃,从而更新所有值 目前System.exit(0)已经完成了我想要的操作,但我知道这并不好 我尝试了finish(),但这并没有足够快地停止活动,它一直在执行一些指令,但仍然会导致崩溃 关于如何处理此问题的任何建议。关闭正在运行的android应用程序的标准方法很简单: finish(); 或者更复杂的方式是: an

我知道不应该打这个电话,但目前是唯一能够足够快地停止活动的事情


基本上,从后台返回应用程序(或使用DDMS“终止应用程序”按钮)后,一些静态变量为空。我想重新启动该活动,以停止崩溃,从而更新所有值

目前System.exit(0)已经完成了我想要的操作,但我知道这并不好

我尝试了
finish()
,但这并没有足够快地停止活动,它一直在执行一些指令,但仍然会导致崩溃


关于如何处理此问题的任何建议。

关闭正在运行的android应用程序的标准方法很简单:

finish();
或者更复杂的方式是:

android.os.Process.killProcess(android.os.Process.myPid());
根据以下文件:

当您的活动完成并应关闭时调用此选项。ActivityResult将通过onActivityResult()传播回启动您的人


调用System.exit()时,实际上是在终止JVM;通过完成活动,您允许Android JVM进行清理。

只有在Android api 21>中,您才能使用>

getActivity().finishAndRemoveTask(); 
完成此任务中的所有活动,并将其从最近的任务中删除 任务列表

它会以System.exit(0)的速度停止应用程序。但是它比System.exit(0)好吗?我不知道

--编辑--


在这个问题中,您可以看到各种停止应用程序的方法。

“基本上,在从后台返回应用程序(或使用DDMS的“终止应用程序”按钮)后,一些静态变量为空”——这是因为您的进程已终止。您需要将所有
静态
字段视为缓存,并准备好延迟初始化它们。请检查:finish()不会“足够快”停止活动,它会继续执行一些仍然导致崩溃的指令。但是谢谢,我认为您需要覆盖暂停时的
并关闭所有仍在运行的线程?哪些指令仍在运行?你想从哪里打电话来?这些细节应该添加到你的帖子正文中。杀掉这个过程也可以,但我觉得它和System.exit一样脏。谢谢。
finish()
只会销毁活动。它不会破坏应用程序上下文。它比android.os.Process.killProcess好吗??