2012-01-31 154 views
3

我是新来的android和java.I创建了9个活动(屏幕),每个人有一个下一个按钮导航到下一个屏幕和第9屏幕有退出按钮关闭应用程序。但是如果我打电话给完成()或android.os.process.killProcess api的它将去往前一个屏幕,但它不关闭整个应用程序。无法关闭应用程序在android

您能否给我提供关闭整个应用程序的代码片段。

+0

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

+0

你也可以在你的AndroidManifest.xml文件中实现这个功能,只需在那些中添加android:noHistory =“true”属性就可以了,你不想返回先前的活动。 – nik431 2012-01-31 13:00:15

+0

为此您可以在退出时使用此代码onClick() moveTaskToBack(true);但当你再次启动应用程序时,最后一个活动显示在屏幕上 – Rishi 2012-01-31 13:06:57

回答

0

在主要活动:

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

这不建议,因为它可以让Android处于不确定状态。 – CommonsWare 2012-01-31 13:12:26

2

如果你不想开始新的活动之前,所有的活动回到你以前的活动,然后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

+0

这不是更好的方法,或者我们可以说这不是确切的溶剂 – 2012-01-31 14:45:22