Domanda

Attualmente lo utilizzo in tutte le mie attività:

@Override
public void onRestart(){
    onStart();
    onResume();
    runFadeInAnimation();
}

"Funziona" ma non ho idea se questo mi rovinerà in futuro.Non sono sicuro se funzioni per colpo di fortuna o se è così che dovrebbe essere fatto.Ho provato a eseguirlo tramite:

@Override
public void onRestart(){
    super.onRestart();
    runFadeInAnimation();
}

Ma non posso, perché tutte le mie attività estendono la mia attività principale e se gestisco super cerca di chiamare le mie attività principali suRestart () che andrà in crash.(Voglio anche che il mio main si dissolva in apertura, quindi sto eseguendo un'animazione anche lì)

Come posso gestirlo con garbo e non causare inconsapevolmente un bug?

È stato utile?

Soluzione

Dai un'occhiata all'Activity Lifecyle qui: http://developer.android.com / reference / android / app / Activity.html

Ciò che stai facendo è effettivamente ridondante rispetto a ciò che dovrebbe accadere automaticamente al riavvio di un'attività.

Sembra che tu abbia alcuni possibili problemi di progettazione con il modo in cui hai definito la tua attività principale e come la stai estendendo.Se potessi dare un suggerimento, direi che se hai cose in un'attività che saranno comuni a TUTTE le tue attività, metti quelle cose in un'attività "genitore" che puoi estendere.Il modo in cui hai definito la tua attività "principale" ora sembra avere delle specifiche che non si prestano ad altre attività.Quindi, una volta impostata la classe di attività "genitore", estendila per creare l'attività "principale" e inserisci lì la logica "dissolvenza in entrata".

In definitiva, dovresti essere in grado di chiamare super.onRestart senza risultati dannosi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top