Android 实施股票价格预警系统的正确方法

Android 实施股票价格预警系统的正确方法,android,Android,以前,在桌面环境下,为了实现一个股票价格预警系统,下面是我要做的 生成一个无限运行的线程 该线程将从股票服务器执行股票价格查询 线程将根据检索到的股票价格执行所有必要的警报操作 线程休眠N个周期。(N可以是30分钟) 回到2 在移动环境中,能效使用是一个主要考虑因素。股票警报机制应该保持运行,即使我使用后退按钮“关闭”应用程序 我有两条出路 使用服务 生成一个无限运行的服务 该服务将从股票服务器执行股票价格查询 该服务将根据检索到的股票价格执行所有必要的警报操作 服务休眠N个周期。(N可以是30

以前,在桌面环境下,为了实现一个股票价格预警系统,下面是我要做的

  • 生成一个无限运行的
    线程
  • 该线程将从股票服务器执行股票价格查询
  • 线程将根据检索到的股票价格执行所有必要的警报操作
  • 线程休眠N个周期。(N可以是30分钟)
  • 回到2
  • 在移动环境中,能效使用是一个主要考虑因素。股票警报机制应该保持运行,即使我使用后退按钮“关闭”应用程序

    我有两条出路

    使用服务
  • 生成一个无限运行的
    服务
  • 该服务将从股票服务器执行股票价格查询
  • 该服务将根据检索到的股票价格执行所有必要的警报操作
  • 服务休眠N个周期。(N可以是30分钟)
  • 回到2
  • 使用AlarmManager
  • AlarmManager
    中安装
    BroadcastReceiver
  • BroadcastReceiver的
    onReceive
    将在下一个N时段触发
  • 触发BroadcastReceiver时,从stock server执行股票价格查询
  • 广播接收器将根据检索到的股票价格执行所有必要的警报操作
  • onReceive
    返回之前,在
    AlarmManager
    中为下一个N时段安装另一个
    BroadcastReceiver

  • 我在想,哪种方式更好?除了这两种方法之外,还有其他更好的方法吗?我觉得
    AlarmManager
    更好,因为我们不需要长时间睡眠,这似乎是在浪费资源?

    使用
    AlarmManager
    触发
    BroadcastReceiver
    ,然后让
    BroadcastReceiver
    启动
    IntentService

    BroadcastReceiver
    不应执行任何长时间运行的任务,但它可以启动
    服务来执行工作。
    IntentService
    (扩展了
    服务
    )将在工作线程上执行工作,然后自动终止


    换句话说,您可以结合您正在考虑的两种方式,但无需持续运行
    服务

    ,因此,在IntentService自行终止之前,是否需要将BroadcastReceiver重新安装到AlarmManager中?因此,下一个警报活动将在N时段后触发?这取决于您如何创建警报。
    AlarmManager
    类具有设置(…)
    单个报警的方法,或者您可以使用
    setRepeating(…)
    创建重复报警,该报警将以相同的间隔触发,直到取消。