我正在开发一个Android 2.3.3应用程序,它由顶级TabActivity组成。我还以编程方式向TabHost添加了一些选项卡,并为每个选项卡添加了一个单独的子活动:
intent = new Intent().setClass(this, MyFirstActivity.class);
spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, MySecondActivity.class);
spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent);
tabHost.addTab(spec);
事件在我的应用程序的其他地方发生,作为响应,我想重新创建所有选项卡活动。要做到这一点,我正在调用getTabHost()。clearAllTabs(),虽然它从选项卡中删除它,但它似乎并没有真正杀死活动。如果我再次运行上面的代码,现有的活动就会被简单地添加回他们的标签,并且它们会像以前一样继续运行。
当我创建意图时,是否需要设置标记或其他内容才能正确关闭并再次创建?或者,是否有任何其他方式让子活动告诉他们何时从父TabActivity中删除它们?
答案 0 :(得分:1)
您可以通过设置标志重新启动活动。代码如下。
spec = tabHost .newTabSpec("tab1")
.setIndicator("FirstActivity")
.setContent(new Intent(this,MyFirstActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
tabHost.addTab(spec);