gpt4 book ai didi

Android Long Running 服务和数据库

转载 作者:行者123 更新时间:2023-11-29 18:13:58 27 4
gpt4 key购买 nike

我正在开发一个由两部分组成的程序

服务组件将每隔预定的时间间隔(比如 15 分钟)读取各种系统功能(CPU 使用率、RAM 使用率、正在运行的任务数、发送的消息、调用的电话等)。并将这些读数/数据保存在数据库中。

Activity 组件将从SQL数据库文件中读取数据并处理信息。

我的问题是

  1. 我必须创建什么样的服务才能永远保持 Activity 状态,直到被 Activity 停止,它还应该在系统重启后自动重启?

  2. 有没有服务写数据到数据库的例子?

  3. 我可以从服务调用父 Activity 吗?

最佳答案

听起来像是一个相当标准的服务。阅读 Service lifecycle .

答案:

  1. 任何服务都行。您需要一个 BroadcastReceiver 来监听 BOOT_COMPLETED Intent 以在启动时启动服务。
  2. Service 对象是 Context 对象,因此您可以使用 SQLite 数据库执行任何您可以在 Activity 中执行的操作。没有区别。
  3. 定义“调用”和“父 Activity ”。您可以通过 Context 中的标准 startActivity() 方法从服务启动一个 Activity。如果您在启动时从 BroadcastReceiver 启动 Service,它是一个独立的服务,未连接到任何 Activity,因此没有父 Activity

另请注意,服务 可能不是您声明的 Intent 所必需的。如果您只是不经常做一些事情,您可以使用 AlarmManager 警报。这样您就不会让 Service 运行并消耗资源,因为您每 15 分钟才处理一次。

关于Android Long Running 服务和数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9214484/

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