每1分钟更新一次android小部件

时间:2011-04-19 19:23:19

标签: android android-widget

您好 我正在写一个Android Widget;我想每隔1-5分钟更新一次以监控来自webservice的数据,但我发现android:updatePeriodMillis不能少于30分钟....我怎样才能用Widget获得这个结果?

谢谢和问候 角

2 个答案:

答案 0 :(得分:16)

每1分钟呼叫注册一次AlarmManager服务。

final Intent intent = new Intent(context, UpdateService.class);
final PendingIntent pending = PendingIntent.getService(context, 0, intent, 0);
final AlarmManager alarm = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarm.cancel(pending);
long interval = 1000*60;
alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(),interval, pending);

但是,将更新推送到app小部件是一项昂贵的操作。每1分钟更新会强制你的“更新应用程序小部件”代码驻留在内存中,这些代码一直在运行,这也会非常耗费电池。

答案 1 :(得分:1)

使用HandlersendMessageDelayed(..)条消息或postDelayed(..) Runner

new Handler().postDelayed( new Runnable() {
    public void run() { ... },
    60000 /* one minute */
);