Facendo file I / O su Android - Quale filo non si appartiene a
-
09-10-2019 - |
Domanda
Dopo aver letto articolo di Brad Fitzpatrick su StrictMode mi rimane qualche domanda.
Da dove viene I / O file appartengono nelle mie applicazioni? (So ??che il thread UI è sbagliato, ma potrebbe generando un nuovo thread di peggio?)
Se devo usare un filo per fare l'accesso al disco allora come dovrebbe gestire la mia domanda l'attuazione? Invia i parametri a un AsyncTask? variabili condivise? Voglio ottimizzare l'utilizzo della memoria, così non solo la risposta (soprattutto perché non v'è alcuna differenza notevole sui miei telefoni)
@Brad se stai leggendo questo:. Mi piacerebbe un post sul blog con i campioni (o link a luoghi della sorgente AOSP) in cui questo è stato fatto nei quadri
Grazie a tutti!
Soluzione
Non si preoccupi per le discussioni. Avvio di un nuovo thread è più veloce rispetto al disco. Su un Nexus One, IIRC, la creazione di nuove discussioni e avviandoli in un ciclo è ~ 1 ms.
Usa tutto quello che è più adatto per la vostra applicazione: (! Con le serrature appropriate) AsyncTask, IntentService, o un nuovo thread con lo stato condiviso. Un AsyncTask è garantito per mantenere in esecuzione se l'utente passa di distanza, ma è un po 'più facile da usare e si apre di nuovo al thread dell'interfaccia utente quando è fatto. Un IntentService continuerà a girare e completa, ma non aiuterà a tornare al thread UI con il risultato. Avrai bisogno di inviare il risultato (se presente) per un Handler sul thread dell'interfaccia utente.