[問題] UDP 在休眠時仍然正常接收packet
我用了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
推
07/13 21:55, , 1F
07/13 21:55, 1F
→
07/14 14:51, , 2F
07/14 14:51, 2F
推
07/14 15:54, , 3F
07/14 15:54, 3F
→
07/15 23:28, , 4F
07/15 23:28, 4F