Ho un'attività chiamata HomeActivity che ha un SurfaceView e mostra un'immagine di anteprima della fotocamera. Questa attività è silenziosa e si sente lenta se la si avvia/si riavvia.onCreate sempre chiamato se si sta tornando con intento
Così ho fatto alcune indagini e ho scoperto che in qualche modo viene sempre chiamato il metodo onCreate. Secondo me questo non dovrebbe accadere se l'attività è già stata avviata?
Il documentation dice: Chiamato quando l'attività viene creata per la prima volta. È qui che dovresti eseguire tutte le normali impostazioni statiche: creare viste, associare dati agli elenchi, ecc. Questo metodo fornisce anche un pacchetto che contiene lo stato precedentemente congelato dell'attività, se ce n'era uno. Sempre seguito da onStart().
Ecco il metodo, che gestisce tornare indietro:
protected void gotoHome() {
final Intent intent = new Intent(SomeOtherActivity.this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
Edit:
ecco come lo sto lasciando HomeActivity ... niente di speciale:
final Intent i = new Intent(HomeActivity.this, SomeOtherActivity.class);
startActivity(i);
Assicurarsi di non terminare() HomeAttività all'avvio di un'altra attività da esso. – Egor
chiamate onCreat() quando si torna con il metodo 'gotoHome()'? –
@Egor Non sto chiamando finish() – Mark