2013-03-07 77 views
0

我使用下面的代碼從一個的ActivityGroup啓動選項卡里面在新選項卡活動:啓動不同的選項卡中的新活動

TabHost mTabHost = TabsFragment.getTabHost();  
    mTabHost.setCurrentTab(2); 
    Intent i = new Intent(Downloader.this,Test.class); 
    replaceContentView(Test.class.getName(),i); 
    public void replaceContentView(String id, Intent newIntent) { 
     View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView(); 
this.setContentView(view);} 

有了這個代碼,我可以切換到新選項卡,但我的問題是,在調用Test活動的oncreate()之前,正在調用當前ActivityGroup的oncreate()。之後,儘管調用了Test.class的oncreate()(通過日誌確認),但Downloader活動將繼續顯示在新選項卡中,而不是Test活動。

爲什麼會發生這種情況,雖然我找不到前面提到的任何原因?

任何幫助解決同樣的問題,非常感謝。

回答

1

取決於你的活動堆棧,如果你的當前正好在父活動之上,你可以完成當前的活動並且它將轉到上一個活動。如果要清除所有活動堆棧,並開始了新的活動嘗試

Intent intent1 = new Intent(context, activity.class); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(intent1); 
+0

我嘗試了兩種選擇(1)增加了兩個標誌,以意圖和使用replaceContentView如在我的崗位。結果是一樣的(2)添加了你的答案中建議的兩個標誌和startActivity。它開始了一個新的活動,而不是顯示當前標籤中的活動 – user1400538 2013-03-07 19:00:02

相關問題