6

我的后台服务正在尽可能快地向本地服务器发送消息。每条消息通常需要大约 30 毫秒。但是当手机处于睡眠模式时,大约需要 400 毫秒到 1000 毫秒(使用“正确”的 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();

是否可以获得与屏幕打开时相同的性能?

4

1 回答 1

0

As far my information, there is known issue - Some devices are not reliable with combination of PARTIAL_WAKE_LOCK and WifiLock:WIFI_MODE_FULL_HIGH_PERF .

It does not work well when screen is OFF.

You can further check with SCREEN_DIM_WAKE_LOCK on that particular device.

于 2013-09-11T06:31:52.753 回答