2014-03-13 41 views
0

我有一個android應用程序與一個loginActivity,然後MainActivity。BackButton帶我回家,但返回到錯誤的活動

當您第一次打開您登錄的應用程序並啓動MainActivity時,startpoint是loginActivity。

我從MainActivity覆蓋onBackPressed,所以你不會回到loginActivity,除非你點擊一個註銷按鈕。

@Override 
public void onBackPressed() { 
Intent mainActivity = new Intent(Intent.ACTION_MAIN); 
    mainActivity.addCategory(Intent.CATEGORY_HOME); 
    mainActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(mainActivity); 
    finish(); 
} 

的問題是,當我按下返回鍵,則顯示主luncher(如預期),但是當我再次打開該應用程序,它進入loginActivity。

有沒有什麼辦法可以「繞過」loginActivity或者告訴android我上次留在哪個活動?

+0

我發現有人使用moveTaskToBack(true);這是正確的使用?任何意見?謝謝 – Nacho

+0

您可以使用sharedprefrences來存儲上次訪問活動用戶的名稱(即任何活動恢復時都會使用它的名稱更改sharedprefrence)。並在主要活動直接啓動該活動。 –

回答

0

如果用戶已經登錄,我會設置一個首選項。在LoginActivity的onCreate中,您可以檢查首選項,並根據需要啓動HomeActivity +在LoginActivity中調用finish()。這樣,您甚至不必在以後重寫onBackPressed,一切都將正常工作。

0

我建議改變你的應用程序在MainActivity的切入點,這樣做的活動中進行檢查,看是否該用戶登錄,並重定向到登錄活動,如果他們還沒有登錄。