2016-04-12 6 views
3

In meiner MainActivity Klasse, ich habe eine Methode, die eine neue Tätigkeit beginnt und tötet die aktuelle:App erneut eingeben und es beginnt von Anfang an?

Intent intent = new Intent(this, NewActivity.class); 
startActivity(intent); 
finish(); 

In der neuen Aktivität, wenn ich die Zurück-Taste drücken, wird die App minimiert/schließt wie erwartet, aber Wenn ich die App neu öffne, wird sie nicht in NewActivity angezeigt, sondern in MainActivity zurück!

Warum ist das so?

+0

dies versuchen http://stackoverflow.com/a/2000319/3790150 – saeed

Antwort

2

Denn wenn es neu startet, das heißt, auch nachdem Sie die Aufgabe beendet haben, startet es den "Main/Launcher" Activity. Sie geben dies innerhalb der AndroidManifest an.

<activity android:name=".MainActivity" 
    ...> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 

Durch Drücken der Zurück-Taste, die standardmäßig beendet die aktuellen Activity und wenn keine andere Activity in der aktuellen Aufgabe vorhanden ist, wird die Aufgabe bekannt beendet haben.

Die Lösung dazu ist, einige Flag oder Zustand innerhalb SharedPreferences zu speichern oder es irgendwie wieder zu lesen, um den Fluss auf NewActivity zu richten.

In Ihrem MainActivity, tun Sie etwas wie folgt aus:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    if(shouldStartNewActivity()) { 
     Intent intent = new Intent(this, NewActivity.class); 
     startActivity(intent); 
     finish(); 
    } else { 
     super.onCreate(savedInstanceState); 
    } 
} 

private boolean shouldStartNewActivity() { 
    //Your logic to check if NewActivity should be started directly 
} 
Verwandte Themen