2014-01-21 85 views
0

嗨,我有一個LoginActivity定義爲noHistory = true。當用戶被正確授權後,他將轉向我的應用程序的MainActivity。當用戶選擇從主要活動註銷時,我將向FLAC_ACTIVTY_CLEAR_TOP啓動Loginactivity。但是當我從LoginActivity中按回現在它將我帶回MainActivity。Cleartop不適用於noHistory = true的活動

看到我的代碼

logoutBotton.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      showLogoutDialog(); 
     } 
    }); 

private void showLogoutDialog(){ 
    AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
    dialog.setTitle("Logout"); 
    dialog.setMessage("Do you really want to logout?"); 
    dialog.setPositiveButton("Logout", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface arg0, int arg1) { 
      Intent intent = new Intent(MainActivity.this,LoginActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   
      startActivity(intent); 
     } 
    }); 
    dialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      dialog.dismiss(); 
     } 
    }); 
    dialog.show(); 
} 

的盛情參考LoginActivity是有noHistory =真。幫我看看我的代碼出了什麼問題。我想在從LoginActivity重新按下時關閉應用程序。

+0

你說你正在使用FLAG_ACTIVTY_CLEAR_TOP,但在代碼中,我沒有看到國旗......,並且確保在啓動前關閉該對話框另一個活動... –

+0

對不起,這只是我的代碼中的一個變化,我照原樣複製了它。現在我編輯了實際的代碼。 – Azhagiri

+0

你可以在啓動LoginActivity後完成MainActivity ... –

回答

1

你可以使用某種全局變量來跟蹤用戶是否已經或沒有登錄。這樣的事情,

public boolean loggedIn = false; 

,然後在mainActivity,覆蓋onResume()finish()如果你登出:

@Override 
public void onResume() { 
    super.onResume(); 
    if (!loggedIn) 
    finish(); 
} 
+0

它似乎是一個黑客,但它適用於我 – Azhagiri

1

按照以下步驟進行: - 它爲我工作

1)使android:clearTaskOnLaunch="true"AndroidManifest.xml您登錄活動。

2)用於整理活動

intent = new Intent(activity, LoginActivity.class); 
      intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET 
        | Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent); 

它爲我工作

+0

但是即使這對我不起作用 – Azhagiri

+0

好吧一步一步地你有真正的android:clearTaskOnLaunch ..? –

0

爲什麼保持標誌?當用戶點擊註銷您只需CA完成活動...

dialog.setPositiveButton("Logout", 
      new DialogInterface.OnClickListener() { 

       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
        Intent intent = new Intent(MainActivity.this, 
          LoginActivity.class); 
        startActivity(intent); 
        finish(); 
       } 
      }); 
相關問題