从阅读它的实际代码实际上使用一个任务,然后更多。A 是在旅途中异步执行的任务。在队列中为单个(或池)后台线程调度 。AsyncTask.java
Future
Future
AsyncTask
实际上,An 比任务更“优越”。它在 的功能之上进行了花哨的调度和优化。只需查看 API 引入级别。 从 API 1.0 开始就引入了。该对象是在 API 3 中引入的。AsyncTask
Future
Future
Future
AsyncTask
AsyncTask 具有 Future 任务,而不是 Future。
异步任务.java
/**
* Creates a new asynchronous task. This constructor must be invoked on the UI thread.
*/
public AsyncTask() {
mWorker = new WorkerRunnable<Params, Result>() {
public Result call() throws Exception {
mTaskInvoked.set(true);
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
//noinspection unchecked
return postResult(doInBackground(mParams));
}
};
mFuture = new FutureTask<Result>(mWorker) {
@Override
protected void done() {
try {
postResultIfNotInvoked(get());
} catch (InterruptedException e) {
android.util.Log.w(LOG_TAG, e);
} catch (ExecutionException e) {
throw new RuntimeException("An error occured while executing doInBackground()",
e.getCause());
} catch (CancellationException e) {
postResultIfNotInvoked(null);
}
}
};
}