Активность будет убита при нажатии HOME только в режиме релиза
Во-первых, у меня есть два действия: Splash и MainActivity (только поддержка портрета). В MainActivity у меня много фрагментов используют меню слайдов. Я хочу сохранить текущий фрагмент, когда пользователь покидает MainActivity. Вот моя попытка:
int currentFragment = 0;
public void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null) {
currentFragment = savedInstanceState.getInt(CURRENT_FRAGMENT_KEY, 0);
switchContent(currentFragment);
} else {
// change fragment by index
switchContent(0);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putInt(CURRENT_FRAGMENT_KEY, currentFragment);
Log.d("onSaveInstanceState" ," current fragment" + currentFragment);
super.onSaveInstanceState(outState);
}
мойmanifest
:
<activity
android:name="com.appiphany.auskills.activity.SplashActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activity.MainActivity"
android:screenOrientation="portrait" />
Все хорошо, когда я создаю свое приложение с помощью ключа отладки: нажмите кнопку «Домой», затем вернитесь в приложение, оно откроет предыдущий фрагмент. Но когда я строю режим релиза (использую свой закрытый ключ, я не используюproguard
), нажмите кнопку HOME в MainActivity, затем снова откройте приложение,это начинается с SplashActivity, Я понятия не имею, с этой странной проблемой. Я попробую это, но это не поможет:
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
currentFragment = savedInstanceState.getInt(CURRENT_FRAGMENT_KEY, 0);
switchContent(currentFragment);
}
Есть какие-нибудь идеи?
ОбновитьЯ нашел еще один странный: эта проблема возникала только при установке из файла apk. После установки телефон попросит 2 варианта:Done
или жеOpen
, Если я нажмуopen
, это проблемы произошли. Когда я убиваю приложение с помощью диспетчера задач, а затем снова открываю, оно работает правильно.