Android关于下载数据和片段列表

时间:2013-03-25 14:42:43

标签: android android-asynctask android-listfragment

我对API 15及更高版本上的新片段感到有点困惑。我一直在开发旧的API 10姜饼版本。我通过使用AsyncTask下载主要活动数据并将其存储到内部存储中来获取所需数据的方法,然后使用另一个AsyncTask来填充我的列表视图。

现在我决定从API 15 Master Detail Flow开始构建一个新应用程序,它从Fragment Activity和Fragment开始,这对于手机和平板电脑来说有点酷。所以我的问题是使用旧方法AsyncTask它是否仍然可行或者建议使用其他方法下载数据并填充listview ??

3 个答案:

答案 0 :(得分:1)

始终建议任何版本的API使用单独的线程(在本例中为AsyncTask doInBackground方法)来执行长时间运行的任务,例如从Internet下载数据。

答案 1 :(得分:0)

你肯定想在他们自己的线程上剥离慢任务。但请注意AsyncTask,因为根据操作系统版本和您自己的设置,您可能无法一次运行多个AsyncTask。请参阅我的其他答案和评论here

答案 2 :(得分:0)

建议使用Loader填充列表视图。

您可以将ListActivity实施为LoaderManager.LoaderCallbacks<E>

您将获得三种覆盖方法:onLoaderCreate,onLoaderFinish,onLoaderReset。

在onLoaderCreate中,您可以告诉它要加载Loader的对象。在游标的情况下,您可以创建一个cursorLoader对象,当您完成加载(onLoaderFinish)时将返回一个Cursor对象。然后,您可以使用光标填充listView的适配器。

至于下载的Asyn。您可以实现IntentService。您可以通过以下方式运行它:

Intent intent = new Intent(mContext, IntentService.class);
startService(intent);

您可以使用广泛的接收器从此后台服务中回电。