我的后台服务正在尽快向本地服务器发送消息。 每条消息通常需要大约30毫秒。但是当手机处于睡眠模式时,它需要大约400ms-1000ms(使用'正确的'Wifi政策关闭屏幕)
在我的服务中,我使用以下代码获取Wifi-lock和WakeLock。
PowerManager lPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = lPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WakeLockTag");
WifiManager lWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
mWifiLock = lWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "LockTag");
} else {
mWifiLock = lWifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "LockTag");
}
mWifiLock.acquire();
mWakeLock.acquire();
是否可以获得与屏幕开启时相同的性能?
答案 0 :(得分:0)
就我的信息而言,存在已知问题 - PARTIAL_WAKE_LOCK和WifiLock的组合有些设备不可靠:WIFI_MODE_FULL_HIGH_PERF。
屏幕关闭时效果不佳。
您可以使用该特定设备上的SCREEN_DIM_WAKE_LOCK进一步检查。