2017-07-28 49 views
-3

來到我有一個Android應用程序看起來像這樣:檢查,如果我們從Android的後退按鈕

LoginActivity - > MainActivity

我的Android的問題是,如果我們已經成功登錄(我們在MainActivity上),然後按手機上的返回按鈕,我們將返回到LoginActivity。這沒有任何意義,因爲我們已登錄。

如果我們來自後退按鈕,如何檢查LoginActivity?我試過這段代碼,但它不起作用,因爲從後退按鈕來的時候,onCreate沒有運行。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 

    // Check if we are registered before, then just go to Main 
    checkIfWeAreRegistered(); 
} 
+4

完成您的loginActivity當您繼續到mainActivity –

+0

在哪個活動中你想要返回按鈕點擊 –

+0

https://stackoverflow.com/questions/3141996/android-how-to-override-the-back-button- so-it-doesnt-finish-my-activity –

回答

2

它只是簡單的只需要調用finish()這樣

Intent intent = new Intent(LoginActivity.this, HomeScreenActivity.class); 
startActivity(intent); 
finish(); 

或試試這個

Intent intent = new Intent(LoginActivity.this, HomeScreenActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
0

而是在爲onBackPressed呼叫檢查你的LoginActivity您可以在清單noHistory=true設置爲從堆棧中刪除它。

1

之前開始主要活動剛剛完成LoginActivity登錄成功。

Intent intent = new Intent(LoginActivity.class, MainActivity.class); 
startActivity(intent); 
finish(); 

其他明智 活動2 MainActivity

定製的onBackPressed
@Override 
public void onBackPressed() { 

// do your stuff 
} 
0

您可以使用startActivtyForResult()爲活動過渡,並在您登錄活動處理onActivityResult。你從這個覆蓋方法關閉活動。

注意:您應該從mainActivity中調用setResult(RESULT_OK)窗體返回按鈕按下。

0

嘗試在MainActivity onBackPressed方法來檢查,如果你已經registrited。如果是的話不要去LoginActivty。

@Override 
public void onBackPressed() 
{ 
    // code here 
    super.onBackPressed(); 
} 
0

@Solo,

一旦從LoginActivityMainActivityLoginActivity去堆棧中,因此在點擊返回按鈕MainActivity從堆棧中再次調用LoginActivity,其中調用onStart()方法。

有通過它可以從MainActivity

首先

完成avaoid用戶回到LoginActivityLoginActivity你打電話MainActivity

因此,例如,經過多次的方式

Intent intent = new Intent(this, MainActivity.class); 
startActivity(intent); 
finish(); // will finish that activity. 

Intent newIntent = new Intent(this,MainActivity.class); 
newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(newIntent); 

這裏Intent.FLAG_ACTIVITY_NEW_TASK清除棧,並使其頂部one.So當我們按下後退按鈕整個應用程序將被終止。