Aktivität wird abgebrochen, wenn HOME nur im Freigabemodus gedrückt wird

Erstens habe ich zwei Aktivitäten: Splash und MainActivity (nur Support-Portrait). In MainActivity verwenden viele Fragmente das Menü Folie. Ich möchte das aktuelle Fragment behalten, wenn der Benutzer MainActivity verlässt. Hier ist mein Versuch:

  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);
}

Meinemanifest:

   <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" />    

Alles ist in Ordnung, wenn ich meine App mit dem Debug-Schlüssel erstelle: Drücken Sie die Home-Taste, und kehren Sie dann zur App zurück, um das vorherige Fragment zu öffnen. Aber wenn ich auf dem Freigabemodus aufbaue (benutze meinen privaten Schlüssel, benutze ich nicht)proguard), drücken Sie die HOME-Taste in MainActivity und öffnen Sie die App erneut.es beginnt mit SplashActivity. Ich habe keine Ahnung mit diesem seltsamen Problem. Ich probiere dieses Event aus, aber es hilft nicht:

   @Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    currentFragment = savedInstanceState.getInt(CURRENT_FRAGMENT_KEY, 0);
        switchContent(currentFragment);     
} 

Gibt es irgendwelche Ideen?

Aktualisieren: Ich habe ein anderes seltsames Problem gefunden: Dieses Problem trat nur auf, wenn ich es von einer APK-Datei aus installierte. Nach der Installation werden zwei Optionen angezeigt:Done oderOpen. Wenn ich drückeopenist dieses Problem aufgetreten. Wenn ich die App vom Task-Manager beende und sie dann erneut öffne, funktioniert sie ordnungsgemäß.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage