Android长期运行服务和数据库

时间:2012-02-09 16:11:17

标签: android android-service android-activity

我正在制作一个由两部分组成的程序

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

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

我的问题是

  1. 我必须创建什么样的服务才能永远保持活着,直到活动停止,它还会在系统重启后自动重启?

  2. 有没有人得到过将数据写入数据库的服务示例?

  3. 我可以从服务中调用父活动吗?

1 个答案:

答案 0 :(得分:3)

听起来很标准Service。阅读Service lifecycle

数目:

  1. 任何服务都可以。您需要一个BroadcastReceiver来监听BOOT_COMPLETED在启动时启动服务的意图。
  2. Service个对象是Context个对象,因此您可以使用Activity中的SQLite数据库执行任何操作。没有区别。
  3. 定义“调用”和“父活动”。您可以通过Activity中的标准startActivity()方法从服务中启动Context。如果您在启动时从Service启动BroadcastReceiver,则该服务是与任何Activity无关的独立服务,因此没有父Activity
  4. 另请注意,对于您声明的意图,Service可能并非绝对必要。如果您只是偶尔做一些事情,那么您可能会遇到AlarmManager警报。这样你就不会让Service运行 - 并且消耗资源 - 因为你每15分钟只处理一次。