0

我正在使用 TabGroupActivity 开发应用程序。我通过 tabhost activies 启动,因此每个选项卡中可以有多个 Intent:

public class MainTabActivity extends TabActivity {
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_tab);
    final TabHost tabHost = getTabHost();   
     tabHost.addTab(tabHost.newTabSpec("tab2")
              .setIndicator("Que")
              .setContent(new Intent(this, TabGroup2Activity.class)));
}

TabGroup2Activity 类:

public class TabGroup2Activity extends TabGroupActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent i = new Intent(getApplicationContext(),QueActivity.class);
    startChildActivity("categorias", i);
}

}

我从这个页面得到了 TabGroupActivity:

我的问题是当我单击第二个选项卡时,我打开了 QueActivity.class。它基本上是一个列表视图,其中包含从数据库中检索的项目。当我单击一行时,我打开了一个新意图,其中包含 Bundle 对象传递的信息。问题是当我在这个意图中点击后退按钮时,我回到 QueActivity Intent,它在 onPause() 事件上,但它进入 onStop()、onDestroy() 和 onStart() 事件进入其他状态(我认为 onResume)不需要再次创建。问题是再次创建的 Intent 执行 SQL 查询和我不再需要执行的事情。我想按返回并以一种我不必再次创建它的方式检索最后一个意图。我希望我已经成功地解释了自己。

4

3 回答 3

0

尝试这个:

<activity ... android:launchMode="singleTop" />

在您的清单文件中。

于 2013-08-05T13:03:28.377 回答
0

这个东西是特定于设备的,有些设备没有去onresume,从头life cycle开始,处理你可以使用Savedinstatnce的,保存状态。

于 2013-08-05T13:10:40.697 回答
0

确保您已在活动中关闭了 CURSOR off DB,无论您在哪里使用它。

stopManagingCursor(c);
于 2013-08-05T12:59:24.097 回答