Android Asynctask vs Runnable vs timertask vs Servizio

Quali sono le differenze tra questi metodi (classi)?

Voglio eseguire un’app che viene eseguita ogni 5 secondi, svuotare la memoria quando è finita e quando la cpu è in modalità standby, è ansible eseguire l’app. In modo che l’app non sia legata a un wakelock.

Saluti,

Shafqat

La differenza tra i primi tre è solo la quantità di lavoro che è stato fatto per te. E un servizio è un componente fondamentale dell’applicazione Android .

AsyncTask come class di convenienza per fare un po ‘di lavoro su un nuovo thread e usare i risultati sul thread da cui è stato chiamato (di solito il thread dell’interfaccia utente) al termine. È solo un wrapper che usa un paio di runnables ma gestisce tutte le complessità della creazione del thread e gestisce la messaggistica tra i thread.

L’interfaccia Runnable è al centro del threading Java. L’interfaccia Runnable dovrebbe essere implementata da qualsiasi class le cui istanze devono essere eseguite da un thread.

TimerTask fa parte di Java standard e può essere utilizzato per l’esecuzione ritardata o ripetuta di un pezzo di codice (Runnable). L’uso è scoraggiato su Android . Puoi invece usare un gestore.

Un servizio può essere utilizzato come parte indipendente e senza UI della tua applicazione Android. Può eseguire e creare i propri thread e può essere avviato per l’interfaccia utente o con Intents tramite un AlarmManager, ad esempio.

Pensa che vuoi che tu sia un servizio che crea il proprio thread e fa del lavoro. Quando il lavoro è terminato, la memoria verrà liberata su Android quando il garbage collector entrerà in azione, qualcosa che non controlli e questa è una buona cosa.

AlarmManager consente di trasmettere Intenti a intervalli specificati e persino di consentire al controllo di ritriggersre il dispositivo o meno. Devi solo definire un BroadcastReceiver nel tuo Servizio e dichiararlo nel tuo manifest.

L’ultima parte della tua domanda non la capisco davvero, quindi ti preghiamo di chiarire un po ‘di più su ciò che stai cercando di ottenere.