2012-08-25 41 views
5

所有活動當我用這個方法,我回到登錄頁面,但我仍然可以點擊返回按鈕,並返回我以前的活動。爲什麼不關閉其他活動?完成,除了一個

public void restartApplication() { 
     Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName()); 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(i); 
    } 

是否有辦法完成除登錄活動以外的所有活動?或重新啓動整個應用程序?

回答

0

嘗試把finish();startActivity(i);後。

3

我想是因爲包經理,活動是在新的歷史堆棧開始。

嘗試使用活動名稱,而不是從包管理器得到。例如,使用此intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)

Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
0

嘗試; intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)的就地;

Intent intent = new Intent(getApplicationContext(), 
     yourActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

startActivity(intent);