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

当Android进入睡眠状态时,我如何继续运行服务?,android,service,socket.io,messenger,Android,Service,Socket.io,Messenger,我正在创建一个即时聊天messenger,就像LINE一样,我正在使用socket.io,但是当我的设备进入睡眠模式时,连接就会丢失。现在我用部分唤醒锁解决了这个问题,但我读到它会影响电池寿命。还有别的办法解决这个问题吗 我也尝试使用onstart命令START\u STICKY,但这两个命令都不起作用 提前谢谢 这是我代码的一部分 @Override public void onCreate(){ handler = new Handler(); mSocket

我正在创建一个即时聊天messenger,就像LINE一样,我正在使用socket.io,但是当我的设备进入睡眠模式时,连接就会丢失。现在我用部分唤醒锁解决了这个问题,但我读到它会影响电池寿命。还有别的办法解决这个问题吗

我也尝试使用onstart命令START\u 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();
}

请参考android推送通知教程。谢谢您的回答。实际上我忘了说我对GCM不感兴趣,这就是为什么我使用socket.io。但是关于GCM its的非常好的解释帮助我理解它。这是你发布的服务类代码吗?您需要使用返回语句STAR\u STICKY或START\u NOT\u STICKY重写
onStartCommand
方法,以使其在后台运行。您好,谢谢您的回答,但我也尝试了onStartCommand,结果相同,连接丢失。这会有所帮助