簡體   English   中英

如何禁用Android中的先前活動

[英]How to disable previous activity in Android

對不起,我的英語不好。

我有兩項活動。 稱為Act1和Act2

單擊Act1中的Button(startActivity)時將啟動Act2。 我的問題是如何在Act2中禁用后退按鈕,所以,我無法返回到Act1。

可能嗎。 謝謝。

如何克服這個問題:

覆蓋onKeyDown方法,結束Set finished();

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        finish();
    }
    return super.onKeyDown(keyCode, event);
}

以前有人問過,所以你會在這里找到很多好的答案:

覆蓋后退按鈕,就像主頁按鈕一樣

只需覆蓋后退鍵並調用finish() 這樣它就不會回到第一個活動,它就會關閉。

在startActivity(i)之后; call finish()關閉之前的活動。 或使用Intent.FLAG_ACTIVITY_NO_HISTORY

有幾個答案。 您可以在此處找到一些: 從歷史堆棧中刪除活動

您還可以覆蓋后退按鈕以完全按照您的意願執行操作。

基本上你需要這個,

Intent.FLAG_ACTIVITY_CLEAR_TASK

這會清除您當前的活動堆棧,即

如果您有活動A並且它使用此標志啟動活動B,則按后退按鈕將不會返回活動B,因為您的堆棧現在只有B.

與覆蓋后退按鈕相比,此方法更簡潔,所需代碼更少。

因為聽起來你想要這樣做,所以后退按鈕不會回到活動1,但你可能仍需要在Acitity 2中使用功能后退按鈕(可能需要處理潛在的Activity 3或處理片段Backstack)最簡單的方法是按原樣保留后退按鈕功能,只需從后台堆棧中擦除活動1即可。 通過在切換到活動2時調用活動1上的finish()來執行此操作:

// This is in Activity 1. It is how we switch to Activity 2:
Intent intent = new Intent(this, Activity2.class);      
startActivity(intent);
finish();
// And now Activity 1 cannot be navigated back to with the back button
// but the back button functionality remains intact.

如果你把它留在下面,我認為它不會崩潰

@Override 

public boolean onKeyDown(int keyCode,KeyEvent event){if((keyCode == KeyEvent.KEYCODE_BACK)){

} 
return super.onKeyDown(keyCode, event); 

}

在活動中使用此代碼2 ...

public boolean onKeyDown(int keyCode, KeyEvent event) {

             switch(keyCode){
             case KeyEvent.KEYCODE_BACK:

             break;
             }
             return false;
             }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM