Android 当应用程序转到后台时,正在为服务调用OnDestroy()
当应用程序被置于后台(按下home按钮)时,服务被破坏是否正常?Android 当应用程序转到后台时,正在为服务调用OnDestroy(),android,service,Android,Service,当应用程序被置于后台(按下home按钮)时,服务被破坏是否正常? 如果是,我是否可以通过注释onDestroy()函数来覆盖它,这样服务就不会被破坏?i、 e这样做是否是一种好的做法。注释掉onDestroy()方法对该行为没有影响;服务类遵循其生命周期 要使服务在后台运行,最常见的方法是使用持久通知。这是故意的;Android不希望服务在后台运行,而不向用户显示它们正在执行某些活动,并可能耗尽电池和使用系统资源 这是通过从服务中调用startForeground()并传递一个将显示给用户的通知
如果是,我是否可以通过注释onDestroy()函数来覆盖它,这样服务就不会被破坏?i、 e这样做是否是一种好的做法。注释掉
onDestroy()
方法对该行为没有影响;服务
类遵循其生命周期
要使服务
在后台运行,最常见的方法是使用持久通知。这是故意的;Android不希望服务在后台运行,而不向用户显示它们正在执行某些活动,并可能耗尽电池和使用系统资源
这是通过从服务中调用startForeground()
并传递一个将显示给用户的通知来完成的
除此之外,另一种方法是将服务中的返回值从onStartCommand()
更改为向Android“建议”您的服务不应终止,或者在终止时重新启动;但是,这并不能保证您的服务在内存不足的情况下保持运行
问一个问题也很好:您正在做什么,需要服务在后台持续运行?通常有更有效的方法来完成这些任务 显示您的代码。服务不会在这样的场景中被破坏前台启动服务是一个巨大的代码,所以这不是当应用程序进入后台时执行的默认命令?谢谢你的回复谢谢你的回复,我是一个从web下载数据的服务的呼叫,当新数据到达时应该通知用户。。。与消息应用程序相同,您是否考虑过使用类似于Google Cloud messaging()的服务?这是一种很好的方式,可以在新数据到达时通知应用程序,而无需保持资源密集型服务持续运行。强烈建议采用这样的方法。