我是新来的android和java.I创建了9个活动(屏幕),每个人有一个下一个按钮导航到下一个屏幕和第9屏幕有退出按钮关闭应用程序。但是如果我打电话给完成()或android.os.process.killProcess api的它将去往前一个屏幕,但它不关闭整个应用程序。无法关闭应用程序在android
您能否给我提供关闭整个应用程序的代码片段。
我是新来的android和java.I创建了9个活动(屏幕),每个人有一个下一个按钮导航到下一个屏幕和第9屏幕有退出按钮关闭应用程序。但是如果我打电话给完成()或android.os.process.killProcess api的它将去往前一个屏幕,但它不关闭整个应用程序。无法关闭应用程序在android
您能否给我提供关闭整个应用程序的代码片段。
在主要活动:
android.os.Process.killProcess(android.os.Process.myPid());
这不建议,因为它可以让Android处于不确定状态。 – CommonsWare 2012-01-31 13:12:26
如果你不想开始新的活动之前,所有的活动回到你以前的活动,然后finish()
。
Intent intent = new Intent(this, Second.class);
startActivity(intent);
finish();
第二个选项是在执行回调onActivityResult()
所有以前的活动finish()
最后一个活动使用的每一个活动startActivityForResult()
和setResult()
。
int AnyNumber = 123;
Intent intent = new Intent(this, Second.class);
startActivityForResult(intent, AnyNumber);
覆盖onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == MyRequestCode){
if(resultCode == Activity.RESULT_OK){
finish();
}
}
}
为此在每一个活动,并在9日活动的结果集,
setResult(Activity.RESULT_OK);
这将打回电话,所有依赖于该活动将结束requestCode
。
这不是更好的方法,或者我们可以说这不是确切的溶剂 – 2012-01-31 14:45:22
Android的设计并不利于通过选择退出应用程序,而是由操作系统,而对其进行管理。您可以通过它的相应Intent调出Home应用程序:Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(意向); – nik431 2012-01-31 12:53:11
你也可以在你的AndroidManifest.xml文件中实现这个功能,只需在那些中添加android:noHistory =“true”属性就可以了,你不想返回先前的活动。 –
nik431
2012-01-31 13:00:15
为此您可以在退出时使用此代码onClick() moveTaskToBack(true);但当你再次启动应用程序时,最后一个活动显示在屏幕上 – Rishi 2012-01-31 13:06:57