2014-09-02 32 views
0

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

同时启动多个asyncTasks。

+0

写一个服务,而不是 – KOTIOS 2014-09-02 09:27:19

+0

它将如何帮助 – Manasi 2014-09-02 09:27:51

回答

0

绝对安全,在我的应用程序中运行良好(6个任务并行获取JSON)。这比按顺序进行要快得多。你只需要确保你为每个操作启动了一个新的 AsyncTask--不可能重用一个AsyncTask。

+0

retriving我将此信息设置到ListView信息之后。所有asyncTasks将retrived数据设置为相同列表将会产生任何问题 – Manasi 2014-09-02 09:45:42

+0

列表实现必须支持并发,否则您必须将写入同步到列表。由于现在唯一的并发列表实现太糟糕了,在我看来,请查看[Collections.synchronizedList()](http://stackoverflow.com/a/6916461/2964379);或[使用列表以外的东西](http://stackoverflow.com/a/8203913/2964379)。 – 0101100101 2014-09-02 09:50:59

+0

谢谢。它很有用。 – Manasi 2014-09-02 10:11:49

1

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

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

还要检查这个环节 http://developer.android.com/reference/android/os/AsyncTask.html