在设备睡眠期间保持应用服务处于活动状态

Keep app service active during device sleep

所以我制作了一个 Android 视频通话应用程序,它试图在后台可用,以便用户可以在屏幕关闭时接听电话。但是我注意到当设备进入睡眠状态时该应用程序会暂停。

我发现可行的解决方案是将所有内容重写到服务中,然后请求唤醒锁,这样服务就不会在睡眠期间暂停。

当然,既然有这么多类型的应用程序,那么有没有更优雅的方法来做到这一点?定期检查行不通,因为您需要实时接听电话。

这取决于Android版本,对于6以上的版本,部分唤醒锁足以保持设备唤醒,对于Android6,您还需要一个前台服务,这是一个服务调用 startForeground() 并显示通知,但保持设备唤醒对电池使用有很大影响。

您不一定需要将所有代码传输到服务,因为它是整个应用程序保持唤醒状态。

替换所有这些的更优雅的解决方案可能是使用 推送通知,大多数消息传递应用程序都使用它。 Firebase 有推送通知。