gpt4 book ai didi

java - 如何将 AsyncTask 从 Android 移植到 java?

转载 作者:IT老高 更新时间:2023-10-28 20:52:47 27 4
gpt4 key购买 nike

AsyncTask对于在 Android 中的 UI 线程和其他线程之间进行同步非常有用。所以我读了它的source code并尝试移植到java经典(JDK)但没有成功,因为java中不存在某些类(消息,处理程序..)。
我想创建一个具有一些有用功能的类,例如 AsyncTask(可以在主线程和其他线程之间同步):

    doInBackground(Params... params)
onProgressUpdate(Progress... values)
onPostExecute(Result result)
publishProgress(Progress... values)
onPreExecute()
onCancelled()

有什么办法可以试试吗?

最佳答案

同意 SwingWorkerAsyncTask

的最直接模拟

如果您不使用 Swing,另一个选项是 ThreadPoolExecutor:http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html

这是一篇演示如何使用 ThreadPoolExecutor 生成多个后台线程的文章:http://www.javacodegeeks.com/2013/01/java-thread-pool-example-using-executors-and-threadpoolexecutor.html

生成一个运行并完成进度更新的单个后台线程(这也是 Android 中 AsyncTask 的常见用法)可以很简单:

Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
// do stuff in background
}
});

关于java - 如何将 AsyncTask 从 Android 移植到 java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com