Android的按下button应该退出应用程序

当用户按一个意图后退button,应用程序应该退出。 如何确保在按下后退button时退出应用程序?

紧接着你开始一个新的活动,使用startActivity ,确保你调用finish()以便当前的活动不会堆积在新的活动之后。

编辑关于你的评论:

你所build议的不是特别的android应用程序stream程通常如何工作,以及用户期望它如何工作。 如果你真的想做什么,就是确保每一个startActivity都是一个startActivityForResult并且有一个onActivityResult监听器来检查退出代码,然后检查退出代码。 你可以在这里阅读更多 。 基本上,在完成活动之前使用setResult ,设置您所select的退出代码,并且如果您的父活动收到退出代码,则将其设置为该活动,然后完成该活动,等等。

在我的家庭活动中,我重写了“onBackPressed”来:

 @Override public void onBackPressed() { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } 

所以如果用户在家中活动并按回来,他会进入主屏幕。

我以编程方式从主屏幕执行代码

更好的用户体验:

 /** * Back button listener. * Will close the application if the back button pressed twice. */ @Override public void onBackPressed() { if(backButtonCount >= 1) { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } else { Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show(); backButtonCount++; } } 

为什么用户不能点击主页button? 然后,他们可以从您的任何活动中退出您的应用程序,而不仅仅是特定的活动。

如果你担心你的应用程序继续在后台做些事情。 请确保在相关的onPause和onStop命令中停止它(当用户按Home键时将触发它)。

如果您的问题是您希望下次用户点击您的应用程序以便在开始时重新开始,我build议在屏幕上放置某种菜单项或UIbutton,以使用户返回到您的开始活动应用程序。 就像官方推特应用程序中的推特鸟一样

使用onBackPressed方法

 @Override public void onBackPressed() { finish(); super.onBackPressed(); } 

这将解决您的问题。

如果在后退堆栈中没有任何活动,应用程序将只会退出。 因此,在你的清单android:noHistory =“true”中join这一行到你不想被重新堆栈的所有活动。然后closures应用程序,调用OnBackPressed

 <activity android:name=".activities.DemoActivity" android:screenOrientation="portrait" **android:noHistory="true"** /> 

首先,Android不build议你在后退button中这样做,而是使用提供的生命周期方法。 后退button不应该破坏活动。

活动正在被添加到堆栈中,当从UI堆栈中最后剩下的Activity按下后退button时,可以从Overview(方块button,因为他们在5.0中引入了材质devise)中访问活动。 如果用户想要closures应用程序,则应该从“概览”菜单中将其closures(closures)。

您的应用程序负责在onPause(),onStop()和onDestroy()生命周期方法上停止任何后台任务和您不想运行的任务。 请阅读更多关于生命周期及其正确的实现: http : //developer.android.com/training/basics/activity-lifecycle/stopping.html

但是,要回答你的问题,你可以做黑客来实现你想要的确切行为, 但正如我所说,不build议

 @Override public void onBackPressed() { // make sure you have this outcommented // super.onBackPressed(); Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } 

要从Android应用程序退出,只需简单地使用。 在您的主要活动中,或者您可以使用Android清单文件进行设置

 android:noHistory="true" 

使用current_activity的方法finish() onBack method of your current_activity

然后在current_activity的onDestroy中添加下面的行来移除Force close

 @Override public void onDestroy() { android.os.Process.killProcess(android.os.Process.myPid()); super.onDestroy(); }