2

我正在处理异步任务。当我调用异步任务时,调用我不想要的异步任务方法execute()需要 1 秒。doInBackground()有谁知道如何减少那个时间?

4

3 回答 3

0

这样的事情取决于系统。在多线程工作时,永远不要假设任何关于时间的事情!

无论如何,如果您的 AsyncTask 重复执行相同的工作,请尝试使用获取 Runnable 作为参数的 ExecutorService。ExecutorServices 不会自动销毁创建的线程,而是尝试重新使用它。这样可以减少开始时间。

于 2012-11-09T07:05:46.480 回答
0

一秒调用doInBackground(),还是一秒返回结果?使用 an 的原因AsyncTask是从 UI 线程异步执行更长的操作。执行需要一段时间(例如 1 秒)的操作是它们存在的原因。

于 2012-11-09T07:07:50.520 回答
0

而不是execute()使用executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ...)这种方式你不需要 ExecutorService。

于 2012-11-09T13:02:14.710 回答