【发布时间】:2012-08-15 02:12:13
【问题描述】:
我是 Android 新手,所以我想确保以下解决方案是正确的。
问题: 我想每 10 分钟通过网络服务将设备的本地数据库与服务器上的数据库同步一次。我已经有一个可以返回新/更新记录的 Web 服务调用。我想知道安排此任务的最佳方式是什么。即使应用程序未运行,我也希望数据库同步。
我的解决方案(这是正确的路线吗?): 我将有一个 BroadcastReceiver 来监听 android.intent.action.BOOT_COMPLETED,在它的 onReceive 中,我将创建一个 AlarmManager,每 10 分钟向 MyReceiver(通过 PendingIntent)发送一条消息。此外,在我的应用程序启动时,我将执行相同的操作(创建一个警报以通过 PendingIntent 向 MyReceiver 发送消息) - 由于两个警报都向 MyReceiver 发送消息,并且它们相应的 PendingIntent 都使用 PendingIntent.FLAG_UPDATE_CURRENT 进行初始化,因此新警报会覆盖旧的? (这就是我想要做的,以防由于某种原因警报在设备启动后被取消,它应该在应用程序启动时重新启动)。
在 MyReceiver 的 onReceive() 中,我将创建一个 MyIntentService(此实例将调用 web 服务并更新本地数据库)。
这是一个好的解决方案吗?有什么建议?
谢谢
【问题讨论】:
标签: android alarmmanager android-pendingintent intentservice