我的应用程序中有一项服务,就像其他一些应用程序一样.根据我习惯,我可以在设置 - >(运行)服务中很好地看到(并杀死)服务.但是:不是我的......
服务本身是从IntentService扩展而来的.它通过BroadcastReceiver处理报警意图以及来自我的应用程序的消息,然后回来做一些工作.由于它对我的应用程序至关重要,并保留了一些远程Web会话和其他(读取:"很多")持久性数据,我明确地在主要活动中启动它
startService(new Intent(this, HeartBeatService.class));
在服务中,我甚至使用
startForeground(NOTIFY_RUNNING, runNotification);
我使用该服务的其他应用程序仅使用bindService(),就像魅力一样.
它真的在运行.完美而永远,正如我所希望的那样,即使活动被Android杀死,因为无论机器人认为它有什么好处.
只是:我没有"看到"它正在运行.我还尝试覆盖服务onStartCommand()以返回START_STICKY,但没有任何改变.我知道,这个不应该在IntentService中被覆盖.
或者我只是想错了?IntentService"不同"吗?
谢谢!
从Android文档参考:
IntentService是服务的基类,可根据需要处理异步请求(表示为Intents).客户端通过startService(Intent)调用发送请求; 根据需要启动服务,使用工作线程依次处理每个Intent,并在工作失败时自行停止.
您的服务只会在收到意图时运行,并在完成意图后停止运行.
此外,我发现绑定到活动的服务不会显示在正在运行的服务屏幕中.
删除绑定后,它们会显示出来.