【问题标题】:Updating and processing data in the background (at a specified interval)在后台更新和处理数据(以指定的时间间隔)
【发布时间】:2013-08-01 17:59:36
【问题描述】:

标题可能已经说明了我的问题。我只是描述了应用程序应该做什么。

  1. 以指定的时间间隔在后台下载 xml 数据(不仅在 UI 运行时)
  2. 处理这些数据
  3. 如果数据如此 -> 发送通知
  4. 如果用户打开 UI,让 UI 获取数据
  5. 如果用户关闭 UI,间隔应该仍然存在

有些人推荐服务,有些人说应该使用Android的警报系统,因为正在进行的服务会占用大量内存并且很可能被系统杀死。

有人可以帮我找到最好的方法吗?

【问题讨论】:

    标签: android background notifications


    【解决方案1】:

    报警管理器的好处:

    1. 警报管理器持有 CPU 唤醒锁并确保 onReceive 方法将被执行。它还可以唤醒设备进行工作。
    2. 正如您所说,服务可以被系统破坏并且它拥有资源。

    所以我认为对于这项工作你应该使用警报管理器,它是专门为将来某个时间点工作而设计的。

    【讨论】:

      【解决方案2】:

      同步适配器。 您可以将同步适配器配置为以指定的时间间隔运行。系统将检查以确保网络可用。同步适配器在后台运行。它可以发送通知。

      通知的标准模式是,如果用户点击通知,它会发出一个内容 Intent。该 Intent 应该返回到您应用中的 Activity。此模式在通知 API 指南和通知用户培训课程中有所描述。

      当用户关闭 UI 时,间隔仍然存在;它会一直存在,直到您更改它或移除同步适配器。

      查看课程Transferring Data Using Sync Adapters

      如果此方法不适合您,请发表评论。

      【讨论】:

      • 我不完全确定是否可以在 Boot 时在 BroadcastReciever 中启动 SyncAdapter 并仍然在 Activity 级别与其通信?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多