我创建了一个在所有手机上运行良好的安卓应用程序。但在我的阿尔卡特手机中,它没有,因为手机进入深度睡眠模式并且数据网络出现故障,因此应用程序没有获得数据网络,也没有从服务器同步数据。
我的设计 ...
SystemBootReceiver
--> (DataSyncService)Service
--> (MyBroadcastReceiver)BroadcastReceiver
--> (MyDataService)Service
。
因此,在系统启动时DataSyncService
,我开始设置AlarmManager
(重复)并调用MyBroadcastRecever
. 调用 后,BroadcastRecever
我停止DataSyncService
调用stopself()
。
现在MyBroadcastRecever
调用MyDataService
.
我遇到了WakeLocks,它可以防止手机进入深度睡眠模式。所以我在MyDataService
onCreate()
方法 内部实现了它
PowerManager pm = (PowerManager)
getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "My Tag");
mWakeLock.acquire();
以及release()
停止服务之前的唤醒锁。
我还在 android Manifest 中设置了权限。
但这没有用。因此,为了快速检查,我使用了市场上的WAKE LOCK应用程序。
但这也没有唤醒手机。我再次从市场上遇到了 WAKE MY ANDROID(从商店中删除的应用程序)应用程序并安装了它......这里发生了魔法。
它使电话保持活力。
正如这个应用程序中的描述所说,他们还使用了Wake Lock
. 那么我错过了什么?
是否存在实施错误或设计问题?