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

Java 关闭/重新启动TabHost中的活动,java,android,android-activity,android-tabhost,tabactivity,Java,Android,Android Activity,Android Tabhost,Tabactivity,我正在开发一个Android 2.3.3应用程序,它包含一个顶级活动。我还以编程方式向TabHost添加了许多选项卡,并为每个选项卡提供了一个单独的子活动: intent = new Intent().setClass(this, MyFirstActivity.class); spec = tabHost.newTabSpec(...).setIndicator(...).setContent(intent); tabHost.addTab(spec); intent = new Inten

我正在开发一个Android 2.3.3应用程序,它包含一个顶级活动。我还以编程方式向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(),尽管它将它们从选项卡中删除,但它似乎并没有真正终止活动。如果我再次运行上面的代码,现有的活动将被简单地添加回它们的选项卡,并且它们将像以前一样继续运行


当我创建意图时,是否需要设置一个标志或一些东西,以便它们正确地关闭并再次创建?或者,子活动是否有其他方式来告知何时从父选项卡Activity中删除它们?

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

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

谢谢你,拉朱。我确实在文档中看到了这个标志,但我完全误解了它的用途;出于某种原因,我认为它清除了整个活动堆栈。谢谢你的帮助!