Android中的System.exit等效?

时间:2017-07-11 23:49:17

标签: java android

我知道不应该进行此调用,但此刻是唯一能够足够快地停止活动的事情。

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

目前System.exit(0)做了我想做的事,但我知道这不好。

我已经尝试了finish(),但这并没有足够快地停止活动,它会继续执行一些仍会导致崩溃的指令。

有关如何管理此问题的任何建议。

3 个答案:

答案 0 :(得分:2)

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

finish();

或更复杂的方式是:

android.os.Process.killProcess(android.os.Process.myPid());

答案 1 :(得分:2)

仅限Android api 21>你可以使用>

getActivity().finishAndRemoveTask(); 
  

完成此任务中的所有活动并将其从最近删除   任务清单。

它像System.exit(0)一样快地停止应用程序。但它比System.exit(0)好吗?我不知道......

- 编辑 -

在这个问题enter link description here中,您可以看到各种方法来阻止您的申请。

答案 2 :(得分:1)

根据Activity.finish()的文档:

  

在您的活动完成后调用此选项并应关闭。 ActivityResult会传播回通过onActivityResult()启动你的人。

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