2013-08-20 94 views
6

我的后台服务尽可能快地向本地服务器发送消息。每条消息通常需要约30ms。但是当手机处于睡眠模式时,大约需要400ms-1000ms(使用“正确的”Wifi策略关闭屏幕)唤醒+ Wifi锁无效

在我的服务中,我使用以下代码获取Wifi锁和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

我见过类似的问题,我的HTC渴望API 8,你有哪个手机? – Ahmed

+0

我注意到Cyanogenmod上的这个,手机无所谓.. –

回答

0

至于我的信息,有一个已知问题 - 有些设备对于PARTIAL_WAKE_LOCK和WifiLock:WIFI_MODE_FULL_HIGH_PERF的组合不可靠。

当屏幕关闭时,它不能正常工作。

您可以在该特定设备上进一步查看SCREEN_DIM_WAKE_LOCK。