Domanda

Sto cercando la classe più adatta per essere un dispatcher per AsyncTasks richiamati dalle mie attività.

Penso che potrebbe essere uno di questi:

  1. sottoclasse di Applicazione;
  2. sottoclasse di Servizio;
  3. il mio statico cose.

Per quanto mi riguarda, è più semplice implementare la terza scelta.Ma la domanda è: sarà più "resistente alla morte" del servizio o dell'applicazione?Inoltre è molto interessante cosa vivrà più a lungo: Applicazione o Servizio?La mia ipotesi è che l'applicazione duri finché dura il processo dell'app (attività in termini di Android).

Quindi, in pratica, devo classificare queste opzioni in base alla loro qualità "resistente alla morte", perché mi piacerebbe fare affidamento sulla cosa più "statica".

AGGIORNAMENTO:

Inizialmente la domanda è stata posta in 2010, quando (1) Android era una nuova piattaforma per gli sviluppatori e (2) la documentazione di Google era troppo vaga (in alcuni casi era addirittura fuorviante) sui cicli di vita dei componenti dell'app e sull'intero ciclo di vita del processo dell'app.

È stato utile?

Soluzione

Dovresti assolutamente usare a Servizio.

Il motivo principale dietro questo - Service ha la propria documentazione ciclo vitale, mentre Application no. Application istanza, come qualsiasi altra variabile statica, può essere uccisa dal sistema quasi in qualsiasi momento, non riceverai alcuna richiamata e non potrai interrompere questo processo.Pertanto, tutti i dati non salvati (tutte le variabili statiche) andranno persi.

D'altra parte, Service non può essere ucciso dal sistema in silenzio, almeno onDestroy() il metodo dovrebbe essere chiamato per primo.Avendo tale richiamata, puoi salvare il tuo stato in una memoria persistente (come SharedPreferences, file, database, ecc.) e ripristinare tale stato al successivo avvio dell'applicazione o del servizio.

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