Android - Как бороться с кнопкой возврата, закрывающей мое приложение и перезагружаемой на правой вкладке - PullRequest
1 голос
/ 03 апреля 2011

В основном я пытаюсь «запомнить» в своем приложении, какая вкладка была открыта в последний раз при выходе из приложения. Чтобы он открылся на этой вкладке при следующем запуске.

Итак, у меня есть основной вид деятельности в виде табота, и в каждой из пяти операций с вкладками я называю метод:

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

Где X - 0-4 в зависимости от вкладки.

На моей основной активности у меня есть:

tabHost.setCurrentTab(mCheckTab());

Какие звонки:

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

    return whichTab;
}

Кажется, что все это работает нормально, когда используется клавиша Home, но когда кнопка возврата используется для выхода из программы, она всегда загружается 0.

Есть идеи, как мне обойти это?

Приветствия

Phil

Ответы [ 2 ]

0 голосов
/ 03 апреля 2011

Вам нужно позвонить commit. Есть хороший способ сделать это, так как каждый из методов редактора возвращает редактор по очереди:

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

Вероятно, ключ home работал, потому что ваше приложение не закрывалось и все еще работало в фоновом режиме.

0 голосов
/ 03 апреля 2011

Вы забыли позвонить commit() на ваш prefsEditor после внесения изменений?

...