我使用以下代码在选项卡内的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活动。
为什么会发生这种情况,虽然我找不到上述任何原因?
非常感谢任何解决问题的帮助。
答案 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);