我注意到像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服务无限期运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)