我有一个需要连续通过wifi监听传入请求的应用程序.在后台运行的服务可以完成这项工作.但是,此服务在屏幕关闭一段时间后会进入睡眠状态.
我搜索到的解决方案是使用AlarmManager使其保持唤醒状态.但这会耗尽设备的电池电量.
那么,还有另一种方法吗?
例如,Whatsapp和Skype之类的应用程序做什么?他们似乎并没有消耗太多的电池,但是他们可以持续运行服务,对吗?
另外,如果AlarmManager是唯一的方法,那么如果有人可以分享它的教程或示例,那将是非常好.
解决方法:
The solution from what I have searched is to use AlarmManager to keep it awake
那无济于事.设备进入睡眠状态后,套接字连接将终止.您将需要使用部分WakeLock和WifiLock来保持设备持续开机.
But it is said that this will drain the battery of the device.
WakeLock和WifiLock肯定会耗尽电池电量.
So, is there another way to do this?
如果您需要使用WiFi,则不需要.
For eg, what do apps like Whatsapp and Skype do?
当设备要进入睡眠状态时,他们不使用WiFi. WiFi无线电一旦关闭,他们就会使用移动数据,因此不需要WifiLock.对于移动数据,传入的数据包将唤醒设备,因此您仅在实际工作时才需要WakeLock,而无需持续进行.
最好的答案是切换到使用C2DM.