我真的需要使用ContentProvider吗?

时间:2014-03-28 05:17:11

标签: android android-contentprovider

如果我确实需要它,我将不得不修改大约15个类(模型和模型管理器类),所以我真的想知道我是否需要 ContentProvider

我在这里:

  1. Twitter 类似,我从服务器获取数据行,并在用户没有Internet连接的情况下将其保存在本地。但理想的方法是始终从服务器获取它。

  2. 我可能要使用SimpleCursorAdapter,因为我从服务器获取的数据行包含网址,这意味着我必须创建一个自定义适配器来显示图像。

  3. 我需要异步地将数据加载到ListViews,因为我的ViewPager有3 Fragments,显示相同的数据(因此,由于ViewPager将3 Fragments加载到内存中,这意味着正在执行3个查询(这很可能是导致非平滑滑动的原因)。

  4. 到目前为止,我在App和服务器之间同步数据的方式是:

    • Fragment.onStart()执行AsyncTask,返回格式为JSON数据的数据行
    • AsycTask.onPostExecute()更新List<E>并致电Adapter.notifyDataSetChanged()

    这里的问题是,每次更改标签时,都会调用onStart(),执行AsyncTask会导致用户界面不顺畅。

    我应该更改与服务器同步数据的方式,还是应该使用ContentProvider

    编辑:作为抬头,我问的原因是startManagingCursor()方法被删除了。它说要使用Loader框架,但它似乎只能通过ContentProvider

    获得

2 个答案:

答案 0 :(得分:0)

  

如果您不打算,则不需要开发自己的提供商   与其他应用程序共享您的数据。但是,你确实需要自己的   提供商在您自己的应用程序中提供自定义搜索建议   如果要复制和粘贴复杂,还需要自己的提供程序   从您的应用程序到其他应用程序的数据或文件。

来自http://developer.android.com/guide/topics/providers/content-providers.html

答案 1 :(得分:0)

我根据支持库中的CursorLoader源代码编写了自定义SimpleCursorLoader。您可以搜索此站点以获取有关编写自定义站点的更多信息。