gpt4 book ai didi

android - 为什么android服务运行在UI线程上?

转载 作者:太空宇宙 更新时间:2023-11-03 10:19:33 25 4
gpt4 key购买 nike

http://developer.android.com/guide/components/services.html

该页面首先说明服务用于在后台运行长期任务。后来在“警告:”中,它说它们在 UI 线程上运行,任何密集的工作都应该在单独的线程中完成,就像 IntentService 的“onHandleIntent”回调中的代码一样。

如果 onHandleIntent 中的代码是服务的长期任务,并且在后台线程中运行,为什么他们说服务在 UI 线程上运行?

最佳答案

这有多种原因:

  1. UI 线程是处理事件和绑定(bind)的方式,更容易理解如何与服务交互。这通常已经在 UI 线程上完成,因此在服务上启动功能也会更容易。
  2. 该服务是一个没有任何 UI 的组件,因此与 Activity 相比,它使用的内存更少,并且与 Activity 相比,发生内存泄漏的可能性也更小。
  3. 该服务可以在前台运行,从而降低了当用户转到其他应用时被杀死的可能性。
  4. 还有一个 IntentService ,它有一个函数(称为“onHandleIntent”),如果你想轻松地执行简单的后台任务,它只在后台线程上运行。
  5. Google 不会强制您以某种方式工作,而是让您决定如何以及在服务上执行什么操作。
  6. 它有自己的生命周期,不受 UI 的影响。它更受资源使用和操作系统决策的影响,当然也受开发人员选择的影响。

关于android - 为什么android服务运行在UI线程上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26556746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com