Android Wear 上的预定数据更新

Scheduled data updates on Android Wear

我想要一些高层次的意见,以了解我如何接近我正在构建的表盘作为教学工具。这非常简单——每小时从 Twitter 抓取一次热门话题并将其显示在手表上。基本上,我的流程如下:

  1. 我在配对 phone 上有一个 AlarmManager,它轮询 Twitter API 并提取新数据,设置为触发 BroadcastReceiver
  2. 调用时,BroadcastReceiver 使用数据层 API 向包含下载数据的可穿戴设备发送单向消息
  3. 收到后,可穿戴应用程序将入站数据作为持久数据存储保存到 SharedPreferences,并从 SharedPreferences 将主题重新绘制到表盘

大概这一切都发生在后台,无论表盘是否正在显示。

我在想,我也可以将 Twitter 数据保存到 phone 应用程序上的 SharedPreferences,然后在 phone 和 watch 之间使用更优雅的数据层 API 同步作业当表盘可见时触发。或者,运行 可穿戴设备上的东西通过 Lollipop JobScheduler API

有人看到我可以设计得更好的地方吗?谢谢!

请记住,数据 API。已经给了你坚持,就不用再牵扯了SharedPreferences。您应该采用的方法是仅使用 Data API。您的 phone 是数据项的生产者,可穿戴设备是消费者,它根据接收到的数据项显示信息。

它的工作方式是这样的:

  1. 您的 phone 从 Twitter 获取趋势;
  2. 它遍历现有数据项,删除旧的和新的;
  3. 表盘最终会收到数据项的更新;它开始显示新数据并停止显示已删除数据;

您可能还会考虑,表盘在启动时会做什么。这很简单:它只是读取所有现有的数据项并根据它们显示数据。

一般而言:如果将数据存储在数据项中,则无需将它们复制到任何其他持久性存储。数据项是在连接的设备之间共享的持久存储。