2010-06-14 1 views
5

Я разрабатываю приложение, в котором мне нужно подключение TCP, чтобы остаться в живых. Для этого я использовал своего рода систему ping/pong. Он отлично работает, когда экран включен, но когда он идет от телефона, перестает отвечать на пинги через некоторое время. Я создал замок бодрствование Wi-Fi, но я все еще переживает по-прежнему та же проблема ..Wake lock, похоже, не работает

Это мой код:

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(); 
     } 
    } 
} 

Любые идеи?

+0

Вы вызывали метод «приобретать()» на объект WakeLock? –

+0

что такое wi-fi wake lock? Вы имеете в виду блокировку экрана? –

+0

Я обновил вопрос с помощью своего кода – shuwo

ответ

2

Вам необходимо приобрести PowerLock от here с помощью знака SCREEN_DIM_WAKE_LOCK/PARTIAL_WAKE_LOCK.

+0

, так что невозможно сохранить wi-fi при выключенном экране? – shuwo

+1

Нет. Это возможно. WiFi-Lock экономит вас от потерянного соединения. Вы также можете использовать PARTIAL_WAKE_LOCK. Я думаю, проблема в том, что вы не приобрели CPU-Lock, поэтому ваш код не выполняется. –