Android - 如何处理后退按钮关闭我的应用程序并在右侧选项卡上重新启动

时间:2011-04-03 06:41:00

标签: android button android-tabhost back

基本上我正在尝试在我的应用中“记住”当应用程序退出时哪个标签最后打开。因此,当它下次启动时,它会在该选项卡上打开。

所以我有一个tabhost作为我的主要活动,在我称之为方法的五个标签活动中的每个活动中:

private void mSetTab(){
    SharedPreferences myPrefs=this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
    SharedPreferences.Editor prefsEditor = myPrefs.edit();
    prefsEditor.putInt("tabToggle", X);
}

其中X为0-4,具体取决于标签。

在我的mainActivity上我有:

tabHost.setCurrentTab(mCheckTab());

哪个电话:

private int mCheckTab() 
{
    SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
    int whichTab = myPrefs.getInt("tabToggle",0);

    return whichTab;
}

当使用Home键时,这一切似乎工作正常但是当使用后退按钮离开程序时,它似乎总是加载0.

我是如何解决这个问题的?

干杯

菲尔

2 个答案:

答案 0 :(得分:0)

您在进行更改后忘记在prefsEditor上调用commit()了吗?

答案 1 :(得分:0)

您需要致电commit。有一种很好的方法,因为每个编辑器方法依次返回一个编辑器:

SharedPreferences myPrefs =
    this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
myPrefs.edit().putInt("tabToggle", X).commit();

主页键似乎可以正常工作,因为您的应用尚未关闭且仍在后台运行。