从选项卡主机点击后退按钮时未调用恢复



我遇到了一个讨厌的问题。我有两个选项卡主机...选项卡主机 A选项卡主机 B。每个选项卡主机有三个选项卡(我们称它们为 A1、B1、A2、B2 等(。选项卡主机 B 从活动 A2 启动。无论如何,这是我的问题:

当我处于选项卡主机 B 的其中一个选项卡中并使用内置的后退按钮导航回活动 A2 时,不会调用onResume。我不明白为什么会这样...我阅读了有关活动生命周期的文章,在我看来,一旦 Tab 主机 B 启动该活动 A2 的 onStop 方法,就应该调用......并且一旦我使用后退按钮导航回它,A2 的 onStart 和 onResume 方法应该被调用。我唯一能想到的是,也许在恢复时调用了选项卡主机 A 的 onResume而不是 Activty A2。任何帮助将不胜感激!

这是我用来从选项卡主机 A 踢 A2 的代码:

intent = new Intent().setClass(this, FiltersActivity.class);
spec = tabHost.newTabSpec("filters").setIndicator("Filters",
       res.getDrawable(R.drawable.ic_tab_filters)).setContent(intent);
tabHost.addTab(spec);

开发者页面的评论继承了答案

 // Create an Intent to launch an Activity for the tab (to be reused)
    intent = new Intent().setClass(this, ArtistsActivity.class);

活动包装在您的选项卡规范中,其生命周期现在与规范相关。

您可能想要做的是提供自己的方法,当您切换到选项卡并调用它时调用该方法。

getTabHost().setCurrentTab(resumeTab);
Activity filtersActivity = this.getCurrentActivity();
filtersActivity.yourMethod();

最新更新