我是新來的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