2017-04-09 122 views
-1

我正在嘗試構建一個簡單的登錄 & 註冊在android中的應用程序。我的問題是,我想處理backpressed(),但它不工作。Android壓縮不起作用

實施例:我具有3個活動:登入寄存器驗證。我需要的是,如果我們返回點擊註冊或驗證,導航應該去登錄,如果我們回來點擊登錄,應用程序應該關閉。

我已經嘗試了這些代碼行,但他們不工作。他們將導航到先前訪問的活動。 此代碼是登入活動

@Override 
public void onBackPressed() { 
    Intent i = new Intent(); 
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    finish(); 
} 

此代碼寄存器活動

@Override 
public void onBackPressed() { 
    Intent i = new Intent(getBaseContext(), LoginActivity.class); 
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(i); 
} 
+0

你使用工具欄?或動作欄後退? – rafsanahmad007

+0

你應該在onBackPressed方法中調用super! –

+0

我正在使用設備後退按鈕@ rafsanahmad007 –

回答

0

我需要什麼是,如果我們返回點擊註冊或驗證, 導航肩d去登錄,如果我們退回點擊登錄, 應用程序應該關閉。

要轉到SignInActivityonBackpressd()VerifyRegisterActivity

@Override 
public void onBackPressed() { 
    Intent i = new Intent(this, SignInActivity.class); 
    finishAffinity(); 
    startActivity(i); 
} 

SignInActivity

@Override 
    public void onBackPressed() { 
     finish();    
    } 

希望這有助於。

+0

這是以某種方式工作,但不是我想要的。例如。如果我登記,我壓抑,它會登錄,但如果我再次去註冊,然後驗證和壓縮它將註冊。 –

+0

是@tahsinRupam –

+0

21 @tahsinRupam –

0

的。如果您正在爲API> 16

@Override 
public void onBackPressed(){ 
    finishAffinity(); 
    super.onBackPressed(); 
} 
+0

不工作@Sadham Hussain –

0

這是肯定的!

@Override 
    public void onBackPressed() { 
     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_HOME); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
     finishAffinity(); 
     System.exit(0); 


    } 
+0

這是怎麼回事? –

0

完成將始終轉到堆棧上的上一個活動。意圖標誌需要在您的活動啓動時進行設置,而不是在您的活動被殺死時進行設置。