使用服务和BroadcastReceiver停止观看应用程序

时间:2010-11-06 23:30:21

标签: android

我正在开发一种类似秒表的程序,它会通知用户不同的事情。他们需要在等待通知时能够使用其他应用程序。通知将是文本到语音。如果UI屏幕打开,则需要查看剩余时间,并能够暂停计时器。

我正在考虑为定时器和通知使用服务。该服务将通过意图和BroadcastReceiver更新UI。这意味着我必须每时每秒发送一次广播。

有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

  

有更好的方法吗?

第二个是第二个是第二个。时间在应用程序的一个组件中流动速度不快于另一个组件。因此,您不需要“每时每秒发送广播”。

此外,将服务保留在内存中,除了计算时间之外什么都不做是浪费CPU和RAM,这种情况会导致用户在触及他们最喜欢的任务杀手时向Android开发人员亵渎神灵。

当倒计时计划结束以处理您的AlarmManager(并且可选地,直接在您的活动中执行某些操作)时,请Notification使用send an ordered broadcast。还将倒计时结束时间存储在持久性存储(数据库,平面文件等)中,当活动返回到屏幕上时,活动可以使用它来获取倒计时。如果用户暂停倒计时,请取消未完成的警报。如果用户设置/重新启用倒计时,请设置闹钟。