作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
AsyncTask对于在 Android 中的 UI 线程和其他线程之间进行同步非常有用。所以我读了它的source code并尝试移植到java经典(JDK)但没有成功,因为java中不存在某些类(消息,处理程序..)。
我想创建一个具有一些有用功能的类,例如 AsyncTask(可以在主线程和其他线程之间同步):
doInBackground(Params... params)
onProgressUpdate(Progress... values)
onPostExecute(Result result)
publishProgress(Progress... values)
onPreExecute()
onCancelled()
有什么办法可以试试吗?
最佳答案
同意 SwingWorker
是 AsyncTask
如果您不使用 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/
我是一名优秀的程序员,十分优秀!