如何在Android进入睡眠状态时继续运行服务?

时间:2015-04-02 06:01:10

标签: android service socket.io messenger

我正在创建一个实时聊天信使,就像LINE一样,我使用socket.io,但是当我的设备进入睡眠模式时,连接就会丢失。现在我使用PARTIAL_WAKE_LOCK解决了这个问题,但我读到它会影响电池寿命。还有另一种方法可以解决这个问题吗?

pd我也尝试使用onStartCommand START_STICKY,但这都不起作用。

提前感谢!!

这是我的代码的一部分

@Override
public void onCreate(){
        handler = new Handler();
        mSocket.connect();
        localStorage = new LocalStorage(this);
        String room = localStorage.getRoom();
        mSocket.emit("join room", room);
        mSocket.on("chat message", onNewMessage);
        PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
        wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MessageService");
        wl.acquire();
}

@Override
public void onDestroy(){
    wl.release();
    super.onDestroy();
    mSocket.off("chat message", onNewMessage);
    mSocket.disconnect();
}

0 个答案:

没有答案