2014-03-24 228 views
0

我認爲這個問題已被多次詢問,但這是一個不同的場景。我有4個活動說act1,act2,act3,act4,我已經打算這樣act1-> act2-> act3-> ACT4當按下後退按鈕時退出應用程序

ACT1-分支選擇,
ACT2年選擇,
ACT3-被攝體選擇,
ACT4-顯示所選擇的主題
用戶可以從ACT4按下返回按鈕它移動到act3並可以選擇不同的主題,類似地,當他按下act3上的按鈕時,它將移動到年份選擇活動,即 act2。所以我想要3個活動act1,act2,act3活着,所以我沒有寫完成方法。我已經把act4中的home按鈕導致act1。
當我按下後退按鈕在ACT1的應用程序應該關閉,但其形成一個循環,並打開所有正在出現instead.please的prevoius活動,爲我提供瞭解決方案,對不起,如果這個問題太冗長

回答

-1

這可能不是way..but您可以覆蓋你的ACT1的onBackPressed按鈕,寫

System.exit(0); 

這將立即關閉應用程序的最佳。 可能有更好的解決方案過於

0

在APP1插件:

@Override 
public void onBackPressed() { 
Intent startMain = new Intent(Intent.ACTION_MAIN); 
     startMain.addCategory(Intent.CATEGORY_HOME); 
     startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(startMain); 
}  
+0

非常感謝這是工作 – user3456614

+0

但這是一個指向主頁,但如果我想要得到的頁面,我打開應用程序我應該修改上面的代碼 – user3456614

+0

我認爲你想要一個正常的意圖,就像@giacomoni有post.Intent it = new Intent(ActivityYouAre.this,ActivityYouWanToGo.class); it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(it); – anotherBug

2

從活動4來當回活動1,如下面的代碼,您應該關閉所有活動,使用標誌Intent.FLAG_ACTIVITY_CLEAR_TOP

Intent it = new Intent(Activity4.this, Activity1.class); 
it.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(it); 

所以在你的活動1當你按下後退按鈕,它會完成應用程序。

希望它有幫助!

+0

這一個只關閉act4,而不是act3,act2這些仍然出現,當我按下後面的按鈕在act1 – user3456614

+0

你可以發佈你的代碼在你的答案? – Giacomoni

0

這就是它應該如何工作。現在在你的堆棧中,你有act1 - > act2 - > act3 - > act4 - > act 1. 所以當你按下從act1的按鈕時,它只會打開act4。你必須做的是,當從act4開始act1時,將FLAG_ACTIVITY_CLEAR_TOP標誌添加到你的意圖中。該標誌所做的是要求android操作系統從後面的堆棧中刪除以前的活動。

相關問題