R4j*_*R4j 20 java multithreading android
AsyncTask对于UI线程和Android中的其他线程之间的同步非常有用.所以我已经阅读了它的源代码并尝试移植到java经典(JDK)但没有成功,因为java中没有一些类(Message,Handler ..).
我想创建一个类,其中包含一些有用的函数,如AsyncTask(可以在主线程和其他线程之间同步):
doInBackground(Params... params)
onProgressUpdate(Progress... values)
onPostExecute(Result result)
publishProgress(Progress... values)
onPreExecute()
onCancelled()
Run Code Online (Sandbox Code Playgroud)
有没有办法试试呢?
Sta*_*iel 14
同意这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
产生一个运行并完成而没有进度更新的单个后台线程(这也是AsyncTaskAndroid中的常见用法)可以简单到:
Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
// do stuff in background
}
});
Run Code Online (Sandbox Code Playgroud)
Kum*_*tra 13
1. AsyncTask专门为Android开发同步UI线程和非UI线程,也称为无痛线程 .....
2. Java中有一种AsyncTask的替代命名为SwingWorker.
请参阅此链接以获得一个很好的基础教程
http://kodejava.org/how-do-i-use-swingworker-to-perform-background-tasks/
| 归档时间: |
|
| 查看次数: |
10080 次 |
| 最近记录: |