0

我正在製作一個應用程序,用戶可以通過單擊註銷按鈕來註銷。在註銷之前,用戶在活動A中,然後他點擊導航抽屜中的ogout按鈕,這將他帶到活動B(登錄屏幕活動)。現在,在這裏,如果我點擊後退按鈕活性的,雖然我對下面的代碼清除活動堆棧再次出現,甚至,即使在清除活動堆棧後,後退按鈕也會重新啓動previus活動

Intent intent = new Intent(curr_context, Activity_B.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 
startActivity(intent); 
finish(); 
在活動B(登錄活動)

另外我有下面的代碼,

public void onBackPressed() { 
     if (backPressedToExitOnce) { 
      super.onBackPressed(); 
     } else { 
      this.backPressedToExitOnce = true; 
      Toast.makeText(curr_context, "Press again to exit", Toast.LENGTH_LONG).show(); 
      new Handler().postDelayed(new Runnable() { 

       @Override 
       public void run() { 
        backPressedToExitOnce = false; 
       } 
      }, 2000); 
     } 
    } 

我真的無法知道我錯在哪裏。任何幫助,將不勝感激。提前致謝 !!

+0

是否有任何的代碼在你的如果有登錄用戶,活動B開始活動A?或者用戶每次都要登錄該應用程序? – SaNtoRiaN

回答

1

只使用

finish(); 

我認爲這將這樣的伎倆 我有同樣的問題 ,並告訴我,如果它的工作原理

+0

thnx回覆,但我應該在哪裏使用它? – varunkr

+0

而不是「backPressedToExitOnce = false;」是:D – 2015-08-08 22:06:21

+0

對不起,但這並沒有任何區別:( – varunkr

1

當您從活動B開始活動A你怎麼叫「完成()「之後的StartActivity?

實例ActivityB:

Intent intentActivityA= new Intent(getApplicationContext(),ActivityA.class);  
startActivity(intentActivityA); 
finish(); 

這將終止ActivityB剛開始活動A之後,當你從ActivityA使用後退按鈕,它應該自動ActivityB已經完成終止應用程序。

+0

thnx的答覆,是我用完了()那裏呢!! – varunkr

+0

你試過使用「getApplicationContext()」而不是緩存curr_context,並做清單包含一個「parentActivityName」爲activityA – Stag

1

Activty_A通話finish();推出Activity_B
你的意圖設置的標誌之後創建B活性一個新的任務,但不適合你關閉。

+0

thnx,但我認爲我已經這樣做了。請看看代碼的意圖部分。 – varunkr

1

您可以在活動的一個補充一點:用這種方式

// 2.0 and above 
@Override 
public void onBackPressed() { 
    moveTaskToBack(true); 
} 

// Before 2.0 
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     moveTaskToBack(true); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

,當您單擊後退按鈕,它會帶你到發射,而不是活動B

相關問題