我正在处理异步任务。当我在异步任务上调用execute()
时,需要1秒钟来调用我不想要的异步任务doInBackground()
方法。有谁知道如何缩短那段时间?
答案 0 :(得分:0)
这些事情取决于系统。在处理多线程时,永远不要假设任何关于计时的事情!
无论如何,如果您的AsyncTask重复执行相同的工作,请尝试使用ExecutorService获取Runnable作为参数。 ExecutorServices不会自动销毁创建的线程,但会尝试重新使用它。这样可以缩短启动时间。
答案 1 :(得分:0)
一秒钟呼叫doInBackground()
,或一秒钟返回结果?使用AsyncTask
的原因是从UI线程异步执行更长的操作。执行需要一段时间(例如1秒)的操作是它们存在的原因。
答案 2 :(得分:0)
而不是execute()
使用executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ...)
这样您就不需要ExecutorService。