将应用程序放到后台时按下服务是否正常(按下主页按钮)? 如果是,我可以通过注释onDestroy()函数来覆盖它,以便不破坏服务吗?那样做是一种好习惯。
答案 0 :(得分:1)
注释onDestroy()
方法对此行为没有影响; Service
类的生命周期为described here。
要让Service
在后台运行,最常见的方法是使用持久通知。这是设计的; Android不希望服务在后台运行,也没有向用户显示他们正在执行某些活动并可能耗尽电池和使用系统资源。
这是通过从服务中调用startForeground()
并传入将向用户显示的通知来完成的。 More on this here。
除此之外,另一种方法是将服务中的onStartCommand()
的返回值更改为“建议”到Android,以免您的服务被杀死,或者如果它被杀死则重新启动;但是,这并不能保证您的服务在低内存情况下保持运行。 More on this here
这也很好问:你正在做什么需要服务在后台持续运行?通常有更有效的方法来完成这些任务。