Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当应用程序转到后台时,正在为服务调用OnDestroy()_Android_Service - Fatal编程技术网

Android 当应用程序转到后台时,正在为服务调用OnDestroy()

Android 当应用程序转到后台时,正在为服务调用OnDestroy(),android,service,Android,Service,当应用程序被置于后台(按下home按钮)时,服务被破坏是否正常? 如果是,我是否可以通过注释onDestroy()函数来覆盖它,这样服务就不会被破坏?i、 e这样做是否是一种好的做法。注释掉onDestroy()方法对该行为没有影响;服务类遵循其生命周期 要使服务在后台运行,最常见的方法是使用持久通知。这是故意的;Android不希望服务在后台运行,而不向用户显示它们正在执行某些活动,并可能耗尽电池和使用系统资源 这是通过从服务中调用startForeground()并传递一个将显示给用户的通知

当应用程序被置于后台(按下home按钮)时,服务被破坏是否正常?
如果是,我是否可以通过注释onDestroy()函数来覆盖它,这样服务就不会被破坏?i、 e这样做是否是一种好的做法。

注释掉
onDestroy()
方法对该行为没有影响;
服务
类遵循其生命周期

要使
服务
在后台运行,最常见的方法是使用持久通知。这是故意的;Android不希望服务在后台运行,而不向用户显示它们正在执行某些活动,并可能耗尽电池和使用系统资源

这是通过从服务中调用
startForeground()
并传递一个将显示给用户的通知来完成的

除此之外,另一种方法是将服务中的返回值从
onStartCommand()
更改为向Android“建议”您的服务不应终止,或者在终止时重新启动;但是,这并不能保证您的服务在内存不足的情况下保持运行


问一个问题也很好:您正在做什么,需要服务在后台持续运行?通常有更有效的方法来完成这些任务

显示您的代码。服务不会在这样的场景中被破坏前台启动服务是一个巨大的代码,所以这不是当应用程序进入后台时执行的默认命令?谢谢你的回复谢谢你的回复,我是一个从web下载数据的服务的呼叫,当新数据到达时应该通知用户。。。与消息应用程序相同,您是否考虑过使用类似于Google Cloud messaging()的服务?这是一种很好的方式,可以在新数据到达时通知应用程序,而无需保持资源密集型服务持续运行。强烈建议采用这样的方法。