gpt4 book ai didi

android - 在服务上执行长时间运行的操作

转载 作者:搜寻专家 更新时间:2023-11-01 08:05:34 24 4
gpt4 key购买 nike

我正在构建一个包含服务的应用程序。我知道所有应用程序组件都在同一个 UI 进程中运行,至少你在 list 中指定了它。所以为了避免 ANR 的消息,我有三种方法。

  1. 在 list 中指定要在单独进程中运行的服务,例如 android:process=":remote"但我读过一些 StackOverflow 的帖子
    说这不是一个好主意,因为它会消耗大量电池和 CPU 处理。 我真的很尊重,因为这些帖子来自值得信赖的人。

  2. 使用 IntentService。这可能是一个很好的出路。但我需要运行我的服务,即使 Activity 不可见。因为我需要该服务不断检查新的网络服务 来自其他用户的消息并通过通知通知。是否可以使用 一个 Intent 服务?这是一个优雅的解决方案。

  3. 使用本地服务。只需从 list 文件中删除 android:process=":remote"属性。 但是我收到一些 ...OnMainThreadException 错误。这意味着我需要创建一个特殊的 线程来执行那些长时间运行的操作或使用 AsyncTask,

也许还有其他方法可以做到。请让我知道,如何在服务上执行长时间运行的操作。确实势在必行。

谢谢。

最佳答案

Android 服务在 UI 线程中执行。因此,您应该使用 AsyncTask 或其他方式来处理网络请求的线程。

关于android - 在服务上执行长时间运行的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14760507/

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