我是新來的Android開發人員。我按下後退按鈕時遇到問題。Android中的後退按鈕導航
如果我使用完成特定視圖被破壞。下次按下後退按鈕,應用程序結束。 我需要與後退按鈕
控制的導航例如這是我的活動A,B,C,d
我的流量應
從活動A到B到C到d至A
和用戶可以d之間導航到一個
,但是當他的用戶從d導航到
再次按下後退按鈕
它不應該導航到任何其他活動
請幫
我是新來的Android開發人員。我按下後退按鈕時遇到問題。Android中的後退按鈕導航
如果我使用完成特定視圖被破壞。下次按下後退按鈕,應用程序結束。 我需要與後退按鈕
控制的導航例如這是我的活動A,B,C,d
我的流量應
從活動A到B到C到d至A
和用戶可以d之間導航到一個
,但是當他的用戶從d導航到
再次按下後退按鈕
它不應該導航到任何其他活動
請幫
我想要一個活動保持其背部按下狀態剛剛開始之前不調用完成()方法其他活動。 Android將照顧採取以前的活動時,你會按後退按鈕,因爲沒有在清單文件中沒有條目android:noHistory="true"
你的一個活動就覆蓋
@Override
public void onBackPressed() {
super.onBackPressed();//comment this if you want to implement your own logic
//Do whatever you like
}
,並開始d活動。
在d覆蓋onBackPress
@Override
public void onBackPressed()
{
super.onBackPressed();
Intent i = new Intent(this, A.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
要從D.所以導航到活動A,你可以從d如下調用活動A,
Intent intent = new Intent(this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //clears B and C from stack.
startActivity(intent);
試試這個 只需鍵入此在活動A相同,沒什麼可改變
@Override public void onBackPressed(){
}
無論何時從其他活動調用活動,調用活動都會根據活動生命週期進入堆棧。當你從A移到B時,A被存入堆棧,B被打開。你想按(A到B到C到D到A),(D到A或反之),但不是從B到A或C到B或D到C或A到D。
當你從B調用活動C時,也調用finish()來銷燬B,同樣,當你從C調用D來銷燬C時,也就是說你不能後退。這會限制你的流量。
類A延伸活動{
//按鈕點擊
Intent intent=new Intent(A.this,B.class);
startactivity(intent);
}
類B擴展活動{
//按鈕點擊
Intent intent=new Intent(B.this,C.class);
startactivity(intent);
finish();
}
C類延伸活動{
//按鈕點擊
Intent intent=new Intent(C.this,D.class);
startactivity(intent);
finish();
}
類d延伸活動{
//按鈕點擊
Intent intent=new Intent(D.this,A.class);
startactivity(intent);
}
以這種方式,當你從A到B - > A存儲在堆棧中時,B到C - > B被銷燬(使用完成),C到D - > C被銷燬,並且你可以去使用後退按鈕直接從D到A.如果從D到A之後再次按下後退按鈕,它會到達D,然後再次按下它會到達A(首先啓動的活動),然後再次按下後,應用程序將結束。