我想知道android中FutureTask
和AsyncTask
之间的区别。根据我的想法,我们可以在FutureTask中获得当前的情况。使用ExecutorService
,我们可以创建一个并行进程池。我们可以使用AsyncTask实现相同的属性。我想知道在哪里使用AsyncTask以及何时使用FutureTask的情况。
我问了一个问题 here但没有得到任何答复。现在我认为我应该改变获取Web服务数据的方式。所以我认为我应该使用FutureTask
,因为它们具有像isDone()这样的功能
并取消。请有人指导我任何更好的从Web服务检索数据的方法。因为我的textView设置的适配器太慢。
或者只是我需要一种方法来取消正在运行的AsyncTasks或将其替换为当前的AsyncTasks。当用户按下w
时,它会调用AsyncTask,当他在AutotextView中向其中添加任何单词时,它将为waka
调用三次,为wa
和wak
调用一次,为waka
调用。用户按下另一个文本时是否可以取消正在运行的任务。看到我的Question here for Details。
最佳答案
AsyncTask
提供了保证在UI线程上运行的回调(onPreExecute
,onProgressExecute
和onPostExecute
)。 AsyncTask已弃用(感谢chokdee)。
FutureTask
不提供回调,并且对Android UI线程一无所知。实际上,Android应用程序不应从UI线程调用Future.get()
,因为它可能会阻止。
Android应用程序应使用Kotlin coroutines。如果您陷入Java困境,请使用FutureTask
。
关于android - Android中FutureTask和AsyncTask之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24950686/