2010-06-14 16 views
5

Ich entwickle eine App, in der ich die TCP-Verbindung benötigt, um am Leben zu bleiben. Ich habe eine Art Ping/Pong-System implementiert, um dies zu tun. Es funktioniert perfekt, wenn der Bildschirm eingeschaltet ist, aber wenn es ausgeht, reagiert das Telefon nach einer Weile nicht mehr auf die Pings. Ich habe eine Wi-Fi-Wach-Sperre erstellt, aber ich bin immer noch immer noch das gleiche Problem auftritt ..Wake Lock scheint nicht zu funktionieren

Dies ist mein Code:

private static WifiManager wm = getSystemService(this.WIFI_SERVICE); 
private static WifiLock wl = null; 

public static void lock(){ 
    wl = wm.createWifiLock(WifiManager.WIFI_MODE_FULL , App.TAG); 
    if(!wl.isHeld()){ 
     wl.acquire(); 
    } 
} 

public static void unlock(){ 
    if(wl != null){ 
     if(wl.isHeld()){ 
      wl.release(); 
     } 
    } 
} 

Irgendwelche Ideen?

+0

Haben Sie beim WakeLock-Objekt die Methode 'acquire()' aufgerufen? –

+0

was ist wi-fi weckschloss? Meinst du Bildschirmsperre? –

+0

Ich habe die Frage mit meinem Code – shuwo

Antwort

2

Sie müssen PowerLock von here mit SCREEN_DIM_WAKE_LOCK/PARTIAL_WAKE_LOCK Flag erwerben.

+0

aktualisiert, so dass es nicht möglich ist, Wi-Fi eingeschaltet zu halten, wenn der Bildschirm vollständig ausgeschaltet ist? – shuwo

+1

Nein. Es ist möglich. WiFi-Lock schützt Sie vor Verbindungsverlust. Sie können PARTIAL_WAKE_LOCK auch verwenden. Ich denke, das Problem ist, dass Sie keine CPU-Sperre erhalten haben, also wird Ihr Code nicht ausgeführt. –

Verwandte Themen