电池优化白名单不会阻止 Doze 延迟我的应用程序
Battery Optimizations whitelist not preventing Doze from deferring my app
我的应用程序每 15 分钟向我的服务器发送一次 GPS 位置数据。此功能是该应用程序的核心目的。
但是,当 phone 关闭且不使用时,GPS 记录会逐渐减少。 GPS 记录之间的时间有一段时间是 15 分钟,然后是 1 小时、2 小时、4 小时、6 小时,然后当我移动 phone 或打开它时回到 15 分钟。
这似乎是由于 Android 中引入的打瞌睡模式所致 6. 我将应用程序添加到电池优化白名单中,但这并没有什么不同,despite the documentation claiming otherwise。
- 为什么白名单在这种情况下没有帮助?
我应该做什么呢? Wakelock 是否会定期延迟从而防止打瞌睡?
// Request frequent location updates.
Intent locationUpdateIntent = new Intent(this, StoreLocationService.class);
locationUpdateIntent.setAction(MyAwesomeActionName);
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(15 * 60 * 1000); // 15 minutes
locationRequest.setFastestInterval(15 * 60 * 1000); // 15 minutes
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, locationRequest,
PendingIntent.getService(this, 0, locationUpdateIntent, 0));
白名单允许网络但仍然阻止一些 CPU activity。使用 setAlarmAndAllowWhileIdle() 授予 CPU 用于列入白名单的应用程序。
本文档中提到了更多选项:
我的应用程序每 15 分钟向我的服务器发送一次 GPS 位置数据。此功能是该应用程序的核心目的。
但是,当 phone 关闭且不使用时,GPS 记录会逐渐减少。 GPS 记录之间的时间有一段时间是 15 分钟,然后是 1 小时、2 小时、4 小时、6 小时,然后当我移动 phone 或打开它时回到 15 分钟。
这似乎是由于 Android 中引入的打瞌睡模式所致 6. 我将应用程序添加到电池优化白名单中,但这并没有什么不同,despite the documentation claiming otherwise。
- 为什么白名单在这种情况下没有帮助?
我应该做什么呢? Wakelock 是否会定期延迟从而防止打瞌睡?
// Request frequent location updates. Intent locationUpdateIntent = new Intent(this, StoreLocationService.class); locationUpdateIntent.setAction(MyAwesomeActionName); LocationRequest locationRequest = LocationRequest.create(); locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); locationRequest.setInterval(15 * 60 * 1000); // 15 minutes locationRequest.setFastestInterval(15 * 60 * 1000); // 15 minutes LocationServices.FusedLocationApi.requestLocationUpdates( mGoogleApiClient, locationRequest, PendingIntent.getService(this, 0, locationUpdateIntent, 0));
白名单允许网络但仍然阻止一些 CPU activity。使用 setAlarmAndAllowWhileIdle() 授予 CPU 用于列入白名单的应用程序。
本文档中提到了更多选项: