退出一个Android应用程序

如果多个活动处于活动状态,如何closures一个android应用程序?

Solutions Collecting From Web of "退出一个Android应用程序"

一个名为“ 退出Android应用程序 ”的博客文章将展示如何退出Android应用程序:

当用户希望退出所有打开的活动时,他们应该按下一个button,加载您的应用程序启动时运行的第一个活动,在我的情况下是“LoginActivity”。

Intent intent = new Intent(getApplicationContext(), LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("EXIT", true); startActivity(intent); 

以上代码清除除LoginActivity之外的所有活动。 LoginActivity是用户运行程序时提出的第一个活动。 然后把这段代码放在LoginActivity的onCreate中,当'Exit'消息通过时它会自毁。

  if (getIntent().getBooleanExtra("EXIT", false)) { finish(); } 

我对这个问题有一个简单的解决scheme

从您按下退出button的活动转到使用以下源代码的第一个活动。 请阅读FLAG_ACTIVITY_CLEAR_TOP的文档。

 Intent intent = new Intent(ExitConfirmationActivity.this, FirstActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); 

现在使用finish()覆盖第一个activity的onResume()

答案很简单:你真的不需要closures一个Android应用程序。 如果没有再显示任何活动,系统会在一段时间后终止进程。 用户可以按“后退”buttonclosures活动。 Reto Meier在这里解释得非常好: http : //blog.radioactiveyak.com/2010/05/when-to-include-exit-button-in-android.html

你可能也想读这个线程; 至less可以说这是非常有帮助的: 退出Android应用程序 – 难道不是吗?

那么,你不应该closures你的应用程序,因为系统pipe理它。 请参阅其他答案中的post/主题以获取更多信息。

但是,如果你真的, 真的想,你仍然可以调用System.exit (0); 就像其他Java应用程序一样。

编辑

 ActivityManager actmgr = (ActivityManager) this.getSystemService (Context.ACTIVITY_SERVICE); actmgr.restartPackage ("com.android.your.package.name"); 

我想起了什么。 我试图使用这段代码重新启动我的应用程序,但它只能杀死我的应用程序。 你可以尝试一下,看看它是否适合你。

几个星期前我问了一个类似的问题 。 请仔细阅读答案和意见,以获得更多的观点和可能的解决scheme。

IMO退出应用程序取决于您的应用程序和用户的期望。 虽然我理解没有退出button的理由,但我也相信这是应用程序devise师必须根据情况做出的select。

一旦你最后的活动失去了重点,Android将根据当前系统需求/免费资源卸载你的进程。 你不应该在意这一点 – 只要使用生命周期onStart,OnStop等来pipe理你的状态。

如果您想退出某个Android活动,则会将您带回到之前的活动或来自当前活动中特定位置的其他活动。

 finish(); System.exit(0);