[Android] DoInBackground от AsyncTask запускает свое выполнение слишком поздно после вызова AsyncTask :: execute


Answers

Мы вообще не беспокоимся о планировании задач с помощью jvm. И нам не нужно беспокоиться.

Если что-то нужно сделать как можно быстрее в вашем приложении, сделайте это в самом конструкторе или используйте onPre of Asynctask (помните, что он выполняется в потоке пользовательского интерфейса).

Но я согласен, что есть что-то подозрительное в doInBackgroud, вызывающем в Android AsyncTask. Я сам был свидетелем того, как doInbackground не получил вызов после onPre. Вы также можете это сделать Google. многие люди столкнулись с этим. Я перешел к использованию традиционной темы.

Я написал свою собственную Asynctask, используя традиционный поток в ядре, и чтобы имитировать onPre и onPost, я использовал Handler. Вы можете пойти и на этот вариант.

Question

Я написал AsyncTask, и большую часть времени между его конструктором не было задержки, и вызывалась его doInBackground (задержка 0 мс). Но когда синхронизация контактов происходит на заднем плане, я часто испытываю задержку в 1-3 секунды между моим конструктором AsyncTasks и doInBackground. Эта задержка неприемлема в моих обстоятельствах. Я понимаю, что AsyncTask - это фоновый поток, и эту проблему можно решить, используя Thread и установив приоритет выше. Но я хочу узнать, как узнать, что вызывает вызов doInBackground моей AsyncTask? Я использовал верхнюю оболочку adb top -m 10, и использование процесса кажется вполне нормальным, когда эта проблема возникла.

Любая помощь приветствуется.

благодаря