Ho scritto un AsyncTask e la maggior parte delle volte non c'è alcun ritardo tra il suo costruttore chiamato e il suo doInBackground chiamato (ritardo di 0 ms). Ma ogni volta che la sincronizzazione dei contatti avviene in background, ho spesso un ritardo di 1-3 secondi tra il costruttore di AsyncTasks e doInBackground. Questo ritardo è inaccettabile nelle mie circostanze. Capisco che AsyncTask è un thread in background e questo problema può essere risolto usando Thread e impostando la sua priorità più alta. Ma quello che voglio scoprire è, come faccio a sapere che cosa sta causando il fatto che doInBackground del mio AsyncTask venga chiamato? Ho usato adb shell top -m 10 e l'utilizzo del processo sembra abbastanza normale quando si è verificato questo problema.Il doInBackground di AsyncTask inizia la sua esecuzione troppo tardi dopo che AsyncTask :: execute si chiama
Qualsiasi aiuto è apprezzato.
grazie
IMO, comunemente verrà eseguito immediatamente, se è in esecuzione anche un altro thread, lo renderà molto più lento, quindi è meglio controllare i thread e sincronizzarli bene. – Tom