2012-10-07 25 views
10

Gibt es eine Möglichkeit, die Aktivität zu ändern, die gestartet wird, wenn die Anwendung gestartet wird?Launcher-Aktivität programmgesteuert ändern

+0

Vielleicht hat gerade eine Dispatcher Aktivität, die die Zielaktivität in 'onCreate' nimmt? – nneonneo

+0

mögliches Duplikat von [Define Default Activity (beim Programmstart) programmgesteuert] (http://stackoverflow.com/questions/6497725/define-default-activity-when-app-starts-programm) –

Antwort

16

Ich würde empfehlen, eine Helferaktivität zu haben, die immer als Launcher-Aktivität in Ihrem Manifest festgelegt ist. Dann können Sie im onCreate dieser Aktivität alle Entscheidungen treffen, die Sie benötigen, um zu entscheiden, welche App gestartet werden soll, und dann die Helferaktivität zu beenden. Beispiel:

In Ihrem Manifest (Launcher-Aktivität):

<activity android:name=".HelperActivity" ... /> 

Dann in HelperActivity der onCreate:

@Override 
public void onCreate(Bundle b){ 
    super.onCreate(); 
    //determine what activity you want 
    startActivity(new Intent(this, NewActivity.class); 
    finish(); 
} 
+3

wenn ich nicht möchte einen groben Übergang zeigen? –

+7

Sie könnten wahrscheinlich Activity.overridePendingTransition() mit 0 für die Animations-ID in onCreate() aufrufen, dann auch override() überschreiben, Activity.overridePendingTransition() aufrufen und dann super.finish() aufrufen. – dennisdrew

+3

Um Animationen und den Verlauf der Stacknavigation zu vermeiden, verwende ich in AndroidManifest nur die Eigenschaft "android: noHistory =" true "". –

Verwandte Themen