关闭/重新启动TabHost中的活动

时间:2012-03-01 04:59:55

标签: java android android-activity android-tabhost tabactivity

我正在开发一个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中删除它们?

1 个答案:

答案 0 :(得分:1)

您可以通过设置标志重新启动活动。代码如下。

    spec = tabHost  .newTabSpec("tab1")
                    .setIndicator("FirstActivity")
                    .setContent(new Intent(this,MyFirstActivity.class)
                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    tabHost.addTab(spec);