看板 AndroidDev 關於我們 聯絡資訊
我用了service並且開了兩個thread 一個用來send一個用來receive 平常都可以正常的接收到封包 可是當使用者螢幕變黑的時候就無法接收到 我有使用了WakeLock和WifiLock 也有MulticastLock 他有一直在receive可是就是接不到封包 一直跳出timeout 可是我另外一台沒有加LOCK的程式碼 卻可以在螢幕變黑的時候send封包 但也一樣沒有辦法接收封包 我在service的onCreate加入: PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, UDPBroadcastService.class.getName()); wakeLock.acquire(); WifiManager wifiManager = (WifiManager) getSystemService( Context.WIFI_SERVICE); wifiLock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL, "WifiLock"); wifiLock.acquire(); mcLock = wifiManager.createMulticastLock("MulticastLock"); mcLock.acquire(); 在onDestroy加入: if (wakeLock != null) { wakeLock.release(); wakeLock = null; } if (wifiLock != null) { wifiLock.release(); wifiLock = null; } if (mcLock != null) { mcLock.release(); mcLock = null; } 以上是我的LOCK的程式碼 可是好像也沒有用 permission也都有加了 請問大家有什麼建議嗎??? 感激不盡!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.156.58
Demarcho:也許跟wifi sleep policy的設定有關? 07/13 21:55
Shihsuang:是指去無線網路設定休眠狀態仍保持WIFI連線嗎?? 07/14 14:51
Demarcho:對。看看調整成wifi永遠不休眠後問題還在不在。 07/14 15:54
Shihsuang:我有調過了,還是一樣的問題耶!請問還有什麼設定會影響? 07/15 23:28