我搜索了StackOverflow并用Google搜索,但我找不到答案。
我正在尝试使用Virgil Dobjanschis Designpattern B构建REST服务(http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html)
我有一个使用SimpleCursorAdapter和LoaderManager的活动来查询ContentProvider。这适用于我的数据库中的数据。重新查询数据并刷新UI。
在ContentProvider上的每个查询之后,一个线程开始同步来自网络的请求数据,它加载json对象,解析并将新数据保存到数据库 - 一切都很好,但UI没有更新。
我想我必须向我的Activity发送一条消息来刷新数据,但我不知道怎么也找不到如何做的例子。
那么,管理这个的正确方法是什么?
----更新----
我想我没有清楚地解释我的问题。 正如你在这张照片中看到的那样:
第7步正在运作。 Helper类正在更新数据。 步骤7'没有发生。我认为这将是ContentProvider的自动功能。
My Helper-class(Resthandler)正在不使用ContentProvider直接更新数据库。
答案 0 :(得分:0)
你有一个SimpleCursorAdapter,我想你用来将数据从内容提供者绑定到你的UI,对吗?如果这是真的,那么每次更新光标时都需要将检索到的光标移动到光标适配器。
通过调用
在CursorLoader.onLoadFinished()中执行此操作SimpleCursorAdapter.swapCursor()或SimpleCursorAdapter.changeCursor()。
查看Android培训课程 Loading Data in the Background以获得完整的示例。
答案 1 :(得分:0)
我找到了解决方案。我在ContentProvider中重载了insert()。所以我可以给它ContentValues,CP正在向db写入数据。 CP向Views发送通知。 它经过测试和运行。我在“Android编程”一书中找到了这个。