2012-01-31 275 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