启动多个AsyncTasks是否安全

时间:2014-09-02 09:24:09

标签: android android-asynctask

在我的应用程序中,我必须从不同的JSON文件下载一些JSON数据。为此,我将使用AsyncTask。我有7个7个JSON文件的链接。这是正确的方法 1.从MainActivity启动asyncTask并在其中运行7个链接的循环 2.或者编写一个以URL作为参数的asyncTask。并为每个链接启动此asyntask。

同时启动多个asyncTasks。

3 个答案:

答案 0 :(得分:1)

我认为使用Executor更安全,因为AsyncTask被设计为围绕Thread和Handler的辅助类,并不构成通用的线程框架。理想情况下,AsyncTasks应该用于短操作(最多几秒钟)。服务器操作可能需要很长时间。如果需要保持线程长时间运行,强烈建议您使用由提供的各种API。 java.util.concurrent pacakge,如Executor,ThreadPoolExecutor和FutureTask。

检查这个答案 https://stackoverflow.com/a/9906890/1826581

同时检查此链接 http://developer.android.com/reference/android/os/AsyncTask.html

答案 1 :(得分:0)

绝对安全,在我的应用程序中运行良好(6个任务并行获取JSON)。它也比按顺序执行要快得多。您只需要确保为每个操作启动 new AsyncTask - 它无法重用AsyncTask。

答案 2 :(得分:0)

可以从HONEYCOMB版本并行运行多个异步任务,也是安全的。因此,实现的方式在蜂窝中有所不同,我们有一个名为Thread Executor的概念。以下是Thread Executor的示例。

Thread Pool

Executor

Thread.Executor Example