2014-05-13 89 views
1

我有一個包含4個選項卡的標籤組。在第二個選項卡中,我有4個孩子活動,從孩子1 =>孩子2 =>孩子3 =>孩子4後,當我點擊一個按鈕時,它應該返回到孩子1作爲一個新的活動,沒有孩子的歷史2 3 4.Android:刪除標籤組中的兒童活動歷史記錄

我曾嘗試這樣的:從孩子4起兒童1,

TabGroupActivity parentActivity = (TabGroupActivity) getParent(); 

    Intent intent = new Intent(getParent(),child1.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    parentActivity.startChildActivity("child", intent); 

誰能幫助我。

+0

您是否關注活動堆棧的大小以及緩存時的內存利用率?或者您只想在關閉子活動時重新啓動父活動? –

+0

我只需要重新啓動我的父母活動,當我關閉最後一個兒童活動 – Ravitheja

回答

0

只startActivity開始你的「孩子」的活動,那麼當對孩子的活動回壓,捕獲onBackPressed對孩子的活動,並以新的意圖,像這樣重新啓動你的父活動:

@Override 
public void onBackPressed() { 
    startActivity(new Intent(this, FirstActivity.class) 
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)); 
} 

這應該從新開始的家長活動開始,爲你帶來新鮮感。

+0

感謝您的答案,但它不適用於我的要求因爲我只需要去我的孩子1活動按鈕點擊兒童4活動沒有小孩的歷史2 3 4在導航到小孩1之後。 – Ravitheja

+0

@Ravitheja其實我的答案確實適用於此。將PreviousActivity.Class更改爲您的新Intent實例中的父活動。通過覆蓋onBackPressed(),你可以決定當你點擊後退按鈕時它去哪個活動。 –

+0

是的..它的工作..謝謝你這麼多@加里Schreiner 我使用的代碼在onBackPressed TabActivity TabGroupActivity parentActivity =(TabGroupActivity)getParent(); parentActivity.startChildActivity(「parentActivity」,new Intent(getParent(),ParentActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)); – Ravitheja