启动不同的选项卡中的新活动
问题描述:
我使用下面的代码从一个的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活动。
为什么会发生这种情况,虽然我找不到前面提到的任何原因?
任何帮助解决同样的问题,非常感谢。
答
取决于你的活动堆栈,如果你的当前正好在父活动之上,你可以完成当前的活动并且它将转到上一个活动。如果要清除所有活动堆栈,并开始了新的活动尝试
Intent intent1 = new Intent(context, activity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent1);
我尝试了两种选择(1)增加了两个标志,以意图和使用replaceContentView如在我的岗位。结果是一样的(2)添加了你的答案中建议的两个标志和startActivity。它开始了一个新的活动,而不是显示当前标签中的活动 – user1400538 2013-03-07 19:00:02