2013-08-20 13 views
6

Il mio servizio in background sta inviando messaggi a un server locale il più velocemente possibile. Ogni messaggio richiede normalmente circa 30ms. Ma quando il telefono è in modalità sleep richiede circa 400ms-1000ms (schermo spento con la politica 'corretta' Wifi)Wake + Wifi lock nessun effetto

All'interno del mio servizio sto usando il seguente codice per acquisire un Wifi-lock e 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(); 

È possibile ottenere le stesse prestazioni di quando lo schermo è acceso?

+0

Ho visto problemi simili con il mio HTC desiderio API 8, quale telefono avete? – Ahmed

+0

Ho notato questo su Cyanogenmod, il telefono non ha importanza .. –

risposta

0

Per quanto riguarda le mie informazioni, c'è un problema noto: alcuni dispositivi non sono affidabili con la combinazione di PARTIAL_WAKE_LOCK e WifiLock: WIFI_MODE_FULL_HIGH_PERF.

Non funziona bene quando lo schermo è spento.

È inoltre possibile controllare con SCREEN_DIM_WAKE_LOCK su quel particolare dispositivo.