android - AsyncTask 的 doInBackground 在调用 AsyncTask::execute 后开始执行太迟

标签 android android-asynctask

我写了一个 AsyncTask,大部分时间在调用其构造函数和调用其 doInBackground 之间没有延迟(0 毫秒延迟)。 但是每当在后台进行联系人同步时,我经常会在 AsyncTasks 的构造函数和 doInBackground 之间遇到 1-3 秒的延迟。在我的情况下,这种延迟是 Not Acceptable 。 我知道 AsyncTask 是一个后台线程,这个问题可以通过使用 Thread 并将其优先级设置得更高来解决。但我想知道的是,我怎么知道是什么导致我的 AsyncTask 的 doInBackground 被调用? 我使用了 adb shell top -m 10,当这个问题发生时,进程使用似乎很正常。

感谢任何帮助。

谢谢

最佳答案

我也遇到这个问题好久了,现在解决了。使用下面的代码

new AsyncTaskName().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

代替代码

new AsyncTaskName().execute();

它会解决延迟运行 doInbackground 的问题。

关于android - AsyncTask 的 doInBackground 在调用 AsyncTask::execute 后开始执行太迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404668/

相关文章:

android - 获取插入的 SIM 卡的唯一 ID

android - 如何使用链式工作人员使用工作管理器创建定期请求

android - Android TabHost 上的徽章

java - AsyncTask 中的 ArrayAdapter 出错

Android,单例异步任务

java - 如何在 Android 中创建接受参数的 Runnable?

android - UDP图像流Android

java - 取消 AsyncTask 时出错 "Cannot make a static reference to the non-static method cancel(boolean) from the type AsyncTask<Void,Integer,Void>"

java - 线程等待一组异步任务完成

java - Android sqlite游标查询