Atividade ser eliminada quando premir HOME apenas no modo de disparo
Primeiro, tenho duas atividades: Splash e MainActivity (apenas retrato de suporte). Em MainActivity, eu tenho muitos fragmentos usando o menu Slide. Eu quero manter o fragmento atual quando o usuário sair do MainActivity. Aqui está minha tentativa:
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);
}
Minhasmanifest
:
<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" />
Tudo está bem quando eu construo meu aplicativo com a chave de depuração: pressione o botão Home, em seguida, de volta para o aplicativo, abra o fragmento anterior. Mas quando eu construo no modo de lançamento (use minha chave privada, eu não usoproguard
), pressione o botão HOME em MainActivity, depois abra o aplicativo novamente,começa a partir de SplashActivity. Eu não tenho ideia com esse estranho problema. Eu evento tentar um presente, mas isso não ajuda:
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
currentFragment = savedInstanceState.getInt(CURRENT_FRAGMENT_KEY, 0);
switchContent(currentFragment);
}
Existe alguma ideia?
Atualizar: Eu encontrei um outro estranho: este problema só ocorreu quando eu instalá-lo a partir do arquivo apk. Após a instalação, o telefone perguntará duas opções:Done
ouOpen
. Se eu pressionaropen
, isso aconteceu. Quando eu mato o aplicativo pelo gerenciador de tarefas, em seguida, abra novamente, funcione corretamente.