2013-08-20 92 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。