2012-04-05 246 views
-1

您好,我已經閱讀了很多關於主題的stackoverflow的帖子,但我仍然無法解決問題。 我需要清除我的活動堆棧,但下面的COMAND利己工作:清除活動堆棧android

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

我也嘗試了API 15 android4.0.3

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

注意到似乎工作如下。

這裏是完整的方法代碼

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 

     Intent intent = new Intent(this, FiltriAnagraficaPagina.class); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
     startActivity(intent); 
    } 

回答

1

嘗試

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK) 
+0

嘗試過了,什麼也沒有發生。 – Pheonix7 2012-04-05 12:58:17

0

這可能會幫助你

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addCategory(Intent.CATEGORY_HOME); 

/////////////// ///////////////////// 根據您的評論編輯

as you start activity B 
finish activity A 
and on backpress of activity B 
start activity A 
+0

http://stackoverflow.com/questions/6664189/androidwhat-is-difference-between-setflags-and-addflags-for-intent – vipin 2012-04-05 12:55:52

+0

它不會改變任何東西... arggg我試過很多東西,但沒有工作。即時變得真正絕望。有什麼辦法嗎? – Pheonix7 2012-04-05 12:59:14

+0

我已經給出了評論中的鏈接,請檢查 – vipin 2012-04-05 13:00:34

0

覆蓋的onkeydown()方法,而不是onBackPressed()在你的活動

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 


    if (keyCode == KeyEvent.KEYCODE_BACK) { 

     Intent intent = new Intent(this, FiltriAnagraficaPagina.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 
     return true; 
     } 
    return super.onKeyDown(keyCode, event); 
} 
+0

嘗試它,它的工作... – Pheonix7 2012-04-05 14:37:17