BroadCastReceiver 和 AlarmManager 的使用

BroadCastReceiver and AlarmManager Usage

我有一个 android 项目,其后端使用解析。为了减少 api 次调用,我一直将 "not so important" 数据固定到本地数据存储,并每天使用 AlarmManager 和 BroadcastReceiver 同步一次。

现在我想经常同步数据,仅当应用 运行 时每 2/3 分钟一次。我该怎么做?我是否使用相同的 AlarmManager 和 BroadCastReceiver(更改频率并在退出时取消警报)来实现这个?还是有更有效的方法?

P.S : Parse.com 用户,在这种情况下减少 api 调用次数的最佳方法是什么?有什么优雅的方法吗?

我有一个 Posts table,其中有用户 post 编辑的文本和投票 table。每当用户创建一个 post 我创建一个 Posts 对象并将其保存以进行解析。当另一个用户使用该应用程序时,他就可以投票。每个 Post 对象的投票计数在投票完成时保存在 Posts table 的列中。但是用户特定的选择保存在本地。这是为了减少 API 调用的次数,我会随着时间的推移积累用户选择并定期同步。

最简单的方法可能是 Alarm Reciver 过滤器 "ACTION_TIME_TICK" 我如何不确定性能(即使应用程序尚未启动它也会打勾)。 无论如何,我认为你可以使用 treads,创建一个每 2-3 分钟 运行 一个处理程序的服务,并在你的应用程序启动时启动它,当然当你的应用程序关闭时终止它。

你也可以看看 HERE

我在某些应用程序中使用Parse.com,我认为最好的方式取决于您的应用程序。例如,您可以在您的应用程序中每隔 "Start" 同步一次,并且还可以每小时触发一种 AlarManager,例如。

我不知道你的应用程序,但我曾经在服务器上同步每次更改的数据。因此,一旦我的服务器发生更改,我就会发送通知并在移动设备上更新我的数据,但这取决于您的应用程序需要如何同步,是从移动设备同步到服务器还是从服务器同步到移动设备。我想听听您更具体地了解您的应用程序,我们可以为您尝试一个好的方法。