在另一个选项卡中启动新活动

时间:2013-03-07 18:31:14

标签: android android-layout

我使用以下代码在选项卡内的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()(通过日志确认),但下载器活动将继续显示在新选项卡中,而不是Test活动。

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

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

1 个答案:

答案 0 :(得分:1)

如果当前完全在父活动之上,您可以完成当前的活动,并依赖于您的活动堆栈,它将转到之前的活动。如果要清除所有活动堆栈并重新开始新活动,请尝试

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