以前,在桌面环境下,要实现一个股票价格警报系统,这就是我所做的。
- 产生一个无限运行
Thread
。 - 该线程将从股票服务器执行股票价格查询。
- 该线程将根据检索到的股票价格执行所有必要的警报操作。
- 线程休眠 N 周期。(N 可以是 30 分钟)
- 回到 2。
对于移动环境,电源效率使用是主要考虑因素。即使我使用后退按钮“关闭”应用程序,股票警报机制也应该继续运行。
我的想法有两种方法。
使用服务
- 产生一个无限运行
Service
。 - 该服务将从股票服务器执行股票价格查询。
- 该服务将根据检索到的股票价格执行所有必要的警报操作。
- 服务休眠 N 个周期。(N 可以是 30 分钟)
- 回到 2。
使用警报管理器
- 安装一个
BroadcastReceiver
在AlarmManager
. - BroadcastReceiver
onReceive
将在接下来的 N 个周期内触发。 - 当 BroadcastReceiver 被触发时,从股票服务器执行股票价格查询。
- BroadcastReceiver 将根据检索到的股票价格执行所有必要的警报操作。
- 从返回之前,在下N期
onReceive
安装另一个。BroadcastReceiver
AlarmManager
我想知道,哪种方式更好?除了这2种方法,还有更好的方法吗?在我看来AlarmManager
更好,因为我们不需要长时间睡觉,这似乎有点浪费资源?