2013-08-20 18 views
6

Moja usługa w tle wysyła wiadomości do lokalnego serwera tak szybko, jak to możliwe. Każda wiadomość trwa zwykle około 30 ms. Ale kiedy telefon jest w trybie uśpienia, trwa około 400ms-1000ms (ekran wyłączony z "poprawną" zasadą Wi-Fi)Wake + Wifi lock no effect

W ramach mojej usługi używam następującego kodu, aby uzyskać blokadę WiFi i 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(); 

Czy można uzyskać taką samą wydajność, jak przy włączonym ekranie?

+0

Widziałem podobne problemy z moim HTC desire API 8, który telefon masz? – Ahmed

+0

Zauważyłem to na Cyanogenmod, telefon nie ma znaczenia ... –

Odpowiedz

0

Jeśli chodzi o moje informacje, nie jest znany problem - niektóre urządzenia nie są niezawodne w połączeniu z PARTIAL_WAKE_LOCK i WifiLock: WIFI_MODE_FULL_HIGH_PERF.

To nie działa dobrze, gdy ekran jest WYŁĄCZONY.

Możesz jeszcze sprawdzić za pomocą SCREEN_DIM_WAKE_LOCK na tym urządzeniu.