2011-11-24 28 views
0

有沒有什麼辦法可以關閉android應用程序?我不能使用完成,因爲它顯示以前的活動,我有很多後面的活動(例如從1到2 ..到10和10我想退出應用程序)。如何實現這一目標?有什麼辦法可以關閉上一次活動的android應用嗎?

+0

SO上有類似的問題。這可能會幫助你。 http://stackoverflow.com/questions/2092951/how-to-close-android-application – Sadat

回答

1
Intent intent1 = new Intent(context, Activity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent1); 

CLEAR TOP清除活動棧,可完成重定向

的最後一個活動,如果你的活動堆棧是正確清楚的頂部會爲工作,你

選項2:

使用寶來鑄造接收器chk link

1

如何使用android:noHistory

無論是否活動應該從活動組中刪除,並完成(稱爲其finish()法),當用戶導航遠離它,它不再是可見的屏幕上 - 「真」,如果它應該完成,如果不是,則爲「假」。默認值是「false」。 值爲「true」表示活動不會留下歷史記錄。它不會留在任務的活動堆棧中,所以用戶將無法返回到它。

0

可以使用(但不推薦)

System.exit(0);

,或者你可以在後臺將您的應用程序(也就是Android的管理方式多任務)

moveTaskToBack(真);

0

廣場上的退出按鈕按下此代碼

Intent intent = new Intent(ExitConfirmationActivity.this, FirstActivity.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 

並配有finish();

1

覆蓋初始活動的onResume我也有同樣的問題,並沒有找到一個方法來definitelly殺死應用程序。但後來我發現這是由系統設計的內在特性造成的。

如果你想關閉一個應用程序,你只需要清除活動堆棧並釋放使用資源。這似乎很奇怪,對吧?你應該有權關閉你自己的應用程序。但在Android應用程序中並不推薦它,它不遵循Android指南。而且,不要爲用戶提供退出選項。對於需要爲用戶提供「退出選項」的Android應用程序(例如,由於安全原因),我們應該提供一個「註銷選項」,清除活動堆棧,免費資源和其他您想要做的事情,但從不殺死主要活動。

清除活動堆棧的解決方案已在其他答案中顯示出來:(1)使用標誌爲FLAG_ACTIVITY_CLEAR_TOP的意圖或(2)使用廣播。

隨着FLAG_ACTIVITY_CLEAR_TOP,你把當前活動的意圖:

Intent intent = new Intent(getApplicationContext(), YourMainActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

而且隨着廣播的選項,是從當前活動發送廣播到要關閉所有活動。

對於這一點,你必須發送廣播(在目前的活動):

Intent broadcastIntent = new Intent(); 
broadcastIntent.setAction("com.package.ACTION_SPECIFICNAME"); 
sendBroadcast(broadcastIntent); 
finish(); 

和接收其他活動這個廣播(上要關閉各一個):

IntentFilter intentFilter = new IntentFilter(); 
intentFilter.addAction("com.package.ACTION_SPECIFICNAME"); 
registerReceiver(new BroadcastReceiver() { 
@Override 
    public void onReceive(Context context, Intent intent) { 
    Log.d("onReceive","Logout in progress"); 
      finish(); 
    } 
}, intentFilter); 

就是這樣!我希望這個答案能幫助你。對不起我的英語不好。 我知道這不是您正在等待的答案,但我認爲這是當前(和「正確的」)解決方案。

相關問題