我的要求:检测并响应电源事件。我有一个活动,允许用户设置响应。在UI进入后台后,应用程序必须保持响应(通过用户操作,即“主页”,或者通过例如接听电话)。
我的分析:
startForeground
将其作为服务。预期的问题:
根据文档,当所有客户端解除绑定时,绑定服务将停止。我只有一个客户端(UI),它将在onDestroy
方法中取消绑定。当客户端被操作系统停止时,将调用此方法,最终将在正常的资源管理下进行。
当应用程序组件通过调用bindService()绑定到它时,服务被“绑定”。绑定服务提供客户端 - 服务器接口,允许组件与服务交互,发送请求,获取结果,甚至跨进程间通信(IPC)进行交互。 绑定服务只有在绑定了另一个应用程序组件时才会运行。多个组件可以同时绑定到服务,但是当所有组件解除绑定时,服务都会被销毁。
问题
被问为一个假设,因为有很多工作设置绑定服务,然后证明它按预期停止。而且,即使它似乎工作,我可能会做错了。
答案 0 :(得分:1)
为什么不在清单中注册广播接收器?当广播功率意图时,它将自动启动和调用。那么你不必担心任何类型的“保持活跃”处理(除非你需要做更长的处理,否则你不需要服务)