要更新小部件,服务是必要的吗?

时间:2015-03-04 07:30:19

标签: android android-intent widget

我正在开发一个小部件,它会每30秒显示一次随机提示。提示是从服务器获取的。 我使用了报警管理器来做到这一点。

我使用了以下两种方法。

第一个:使用服务。

我已经从widget提供程序类的OnUpdate方法启动了intent服务。在服务中我已初始化asynctask以从服务器获取提示,然后设置警报,该警报将在30秒后关闭,使用新提示更新小部件并停止服务。当警报响起时,它发出意图启动我的服务我从OnUpdate开始的意向服务。因此,该服务将再次初始化asynctask以从服务器获取提示,设置警报并停止。这将继续,并会定期刷新提示。从主屏幕删除小部件后,我取消了alram。

第二个:使用接收器

从widget提供程序类的onEnabled()方法创建重复警报。当警报响起时,它会广泛投射一个自定义意图。在widget提供程序类中,我定义了一个将接收此intent的listner。一旦收到intent,初始化asynctask以从服务器获取提示并使用新提示更新小部件(代码用onReceive()方法编写。)。警报每30秒重复一次,因此将收到意图并定期刷新提示。从主屏幕移除小部件后,将取消警报。

在两种情况下,都使用报警类型作为AlarmManager.RTC,这样当alram关闭时它不会唤醒设备。

我想知道是否有必要编写服务来更新小部件?我的意思是哪种方法更好?有没有其他方法可以做到这一点?

提前致谢

克里希纳

0 个答案:

没有答案