你能把两个 AsyncTasks 合二为一 Activity 吗?
Can you have two AsyncTasks in one Activity?
我已经开发了一个 Activity 来解析 JSON 数据并在 ListView 中显示结果。为此,我正在使用 AsyncTask。
我现在想要的是,当我单击 ListView 中的项目时,文件应该开始下载。我可以在同一个 activity 中编写另一个 AsyncTask 以便这个 AsyncTask 为我完成下载工作吗?在同一个 activity 中有多个 AsyncTasks 有什么问题吗?
根据 Doc 是的,你可以。
When first introduced, AsyncTasks were executed serially on a single
background thread. Starting with DONUT, this was changed to a pool of
threads allowing multiple tasks to operate in parallel. Starting with
HONEYCOMB, tasks are executed on a single thread to avoid common
application errors caused by parallel execution.
If you truly want parallel execution, you can invoke
executeOnExecutor(java.util.concurrent.Executor, Object[]) with
THREAD_POOL_EXECUTOR.
最佳答案 How 本身就在 Whosebug 上。
单个 activity 中的多个 Asynctasks 应该没有任何问题。您应该注意清楚地定义每个操作的值(例如,如果任务 B 依赖于任务 A 给出的值,请确保 A 必须先完成),但总的来说应该没问题。我现在有一个项目,第一次安装时有三个异步任务 运行,到目前为止一切顺利。
是的..你可以。
AsyncTask 是简单的线程处理程序实现。
我已经开发了一个 Activity 来解析 JSON 数据并在 ListView 中显示结果。为此,我正在使用 AsyncTask。
我现在想要的是,当我单击 ListView 中的项目时,文件应该开始下载。我可以在同一个 activity 中编写另一个 AsyncTask 以便这个 AsyncTask 为我完成下载工作吗?在同一个 activity 中有多个 AsyncTasks 有什么问题吗?
根据 Doc 是的,你可以。
When first introduced, AsyncTasks were executed serially on a single background thread. Starting with DONUT, this was changed to a pool of threads allowing multiple tasks to operate in parallel. Starting with HONEYCOMB, tasks are executed on a single thread to avoid common application errors caused by parallel execution.
If you truly want parallel execution, you can invoke executeOnExecutor(java.util.concurrent.Executor, Object[]) with THREAD_POOL_EXECUTOR.
最佳答案 How 本身就在 Whosebug 上。
单个 activity 中的多个 Asynctasks 应该没有任何问题。您应该注意清楚地定义每个操作的值(例如,如果任务 B 依赖于任务 A 给出的值,请确保 A 必须先完成),但总的来说应该没问题。我现在有一个项目,第一次安装时有三个异步任务 运行,到目前为止一切顺利。
是的..你可以。
AsyncTask 是简单的线程处理程序实现。