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 活动。

为什么会发生这种情况,尽管我找不到上述任何原因?

非常感谢任何解决相同问题的帮助。

4

1 回答 1

1

取决于您的活动堆栈,如果您的当前活动恰好位于父活动之上,您只需完成当前活动,它将转到上一个活动。如果您想清除所有活动堆栈并重新开始新活动,请尝试

Intent intent1 = new Intent(context, activity.class);
             intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
             intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
            startActivity(intent1);
于 2013-03-07T18:34:21.420 回答