1

我找不到这方面的具体示例,尽管这似乎是一条相当完善的路径,也是同步适配器的主要用途之一。我已经实现了大部分,但仍有一些问题需要解决。这是我现在的基本策略

执行同步

  • 找出本地存储的最后一项
  • 如果没有本地项目,则将新项目拉到某个最大大小
  • 如果有本地项目,拉新项目直到到达本地项目
  • 删除超过最大项目大小的项目

我有一个带有内容观察器的列表适配器,它应该反映同步的信息。

问题: 如果所有这些都是合理的,我目前的困境是如何从数据库中删除项目。我假设在使用内容时我应该避免任何删除,但是在我的同步适配器中,我如何知道当前是否正在观察数据?(观察者的静态地图?)

补充: 除此之外,我希望有一些这样的例子,这样我就可以预见到其他问题。我知道 google IO 演讲,它有一些很棒的高级哲学,但细节会为许多非专家开发者创造奇迹。

我认为这是一个非常有价值的功能,所有 Android 拥护者都希望完成并且做得正确,因为同步适配器提供了 Android 最令人向往的功能之一,并且只能帮助增加用户群,帮助我们所有人.

4

1 回答 1

2

只是一个建议:也许同步适配器应该只添加新项目而不是删除旧项目,删除应该由应用程序完成。

注意:似乎在 Android Gmail 中删除正在发生,而应用程序正在显示电子邮件。尝试在 web-gmail 中删除/存档消息,然后在 Android 中使用菜单刷新:同步将在后台运行,然后消息将在没有任何通知的情况下消失。所以似乎可以接受。

更新:

也许您的同步适配器应该检查您的活动是否处于活动状态,如果没有则删除旧项目。如何检查您的活动是否处于活动状态:http: //www.mannaz.at/codebase/android-activity-foreground-surveillance/

于 2011-05-04T19:12:51.850 回答