Android服务无限期运行

Android服务无限期运行,第1张

概述我注意到像Skype这样的应用程序使用的服务基本上是24×7全天候运行而不会被杀死.你甚至无法使用任务杀手手动杀死它(你可以通过运行服务并终止服务来杀死它们).这是如何实现的?我发现在Android2.3中,我的服务在运行一段时间后会被杀死.即使我使用START_STICKY启动服务,也永远不会

我注意到像Skype这样的应用程序使用的服务基本上是24×7全天候运行而不会被杀死.你甚至无法使用任务杀手手动杀死它(你可以通过运行服务并终止服务来杀死它们).这是如何实现的?

我发现在Android 2.3中,我的服务在运行一段时间后会被杀死.即使我使用START_STICKY启动服务,也永远不会调用onDestroy().然而,这在我的2.1设备上工作正常,即服务不会被杀死.

谢谢

解决方法:

How is this implemented?

根据显示通知图标的Skype屏幕截图,他们很可能使用startForeground().

I find that in AndroID 2.3, my service gets killed after running for sometime.

这是完全正常的.

首先,大多数AndroID应用程序并不真正需要“基本上全天候运行”的服务.用户不喜欢这样的服务,这就是 *** 作系统中存在任务杀手和运行服务屏幕以及自动终止逻辑的原因.服务应该“24×7”运行的唯一原因是每微秒都能提供价值. VOIP客户端,如Skype,每微秒都会提供价值,因为他们正在等待来电.大多数AndroID应用程序都不符合此标准.

如果您的服务不断运行,但是在用户控制的时间段内(例如,音乐播放器),startForeground()是一个很好的解决方案.

否则,我宁愿您找到一种方法来消除“基本上全天候运行”的服务,使用AlarmManager切换到用户可控的轮询系统,因此除了提供价值之外,您的服务通常不在内存中.

总结

以上是内存溢出为你收集整理的Android服务无限期运行全部内容,希望文章能够帮你解决Android服务无限期运行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存