我有一個聊天application.my代碼有一個線程管理互聯網連接。 但幾分鐘後我的線程進入睡眠狀態。 我知道我應該使用WakeLock
來喚醒CPU和我的線程。 但是當我使用下面的代碼,電池使用率上升。在Android中連續使用互聯網連接
if (mWakeLock == null) {
mWakeLock = pm.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK,
"NewOnlineSignalingPowerManagerTag");
}
if (mWifiLock == null) {
mWifiLock = wm.createWifiLock(
WifiManager.WIFI_MODE_FULL,
"NewOnlineSignalingWifiManagerTag");
}
if (!mWakeLock.isHeld()) {
logging.l("mWakeLock.acquire()");
mWakeLock.acquire();
}
if (!mWifiLock.isHeld()) {
logging.l("mWifiLock.acquire()");
mWifiLock.acquire();
}
你願意我更好嗎?
我建議刪除該喚醒鎖。當用戶收到回覆時,您的應用應該向用戶發送通知。 – 2012-11-27 05:56:11
我知道,但如果用戶不使用手機,線程將關閉,並且TCP連接disconnect.so您不能接收任何數據。 –
您是否在使用服務接收數據? – 2012-11-27 06:01:48