我的Android应用使用SyncAdapter
与我的API服务同步。我使用delayUntil
告诉它每半小时才同步一次。但是,有些用户报告的事件是,一旦完成它就再也不会再次入睡,从而耗尽手机电池(例如,应用程序显示在设备的电池页面上显示"保持清醒&# 34; 13小时+)。
我也确定onPerformSync
方法中没有无限循环 - 它会进行一些HTTP调用并更新数据库及其相关内容。
有没有其他人经历过这样的事情,如果有的话,背后的是什么?
答案 0 :(得分:0)
查看您的应用onCreate
方法。我犯的错误是假设应用程序只在用户与您的应用程序交互时启动,但实际上每次SyncAdapter执行其操作时应用程序都会启动。在我的情况下,应用程序的onCreate
方法告诉Dropbox开始同步,并且设计使Dropbox停止同步的代码从未启动(它发生在最后一个Activity被关闭时 - 当然从未发生过因为只有SyncAdapter运行时 没有活动,所以它再也没有进入睡眠状态。