2012-10-07 4 views
10

Esiste un modo per modificare l'attività avviata all'avvio dell'applicazione?Modifica programmata dell'attività di avvio

+0

Forse solo avere un'attività dispatcher che raccoglie l'attività di destinazione in 'onCreate'? – nneonneo

+0

possibile duplicato di [Definisci attività predefinita (all'avvio dell'app) a livello di programmazione] (http://stackoverflow.com/questions/6497725/define-default-activity-when-app-start-programmaticamente) –

risposta

16

Si consiglia di svolgere un'attività di supporto sempre designata come attività di avvio nel file manifest. Quindi, nel onCreate di quell'attività puoi fare qualsiasi determinazione tu abbia bisogno per decidere quale app avviare e poi terminare l'attività di supporto. Esempio:

Nel vostro manifesto (attività lanciatore):

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

Poi, in onCreate di HelperActivity:

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

se non desidero mostrare una transizione difficile? –

+7

Probabilmente potresti chiamare Activity.overridePendingTransition() con 0 per l'ID dell'animazione in onCreate(), quindi anche sovrascrivere finish(), chiamare Activity.overridePendingTransition(), quindi chiamare super.finish(). – dennisdrew

+3

Per evitare animazioni e cronologia della navigazione in pila, uso solo la proprietà 'android: noHistory = "true"' in AndroidManifest. –