在更改日期时更新小部件

时间:2011-04-04 04:08:28

标签: android

我有一个小部件,显示当前日期和其他内容。但是,当用户在主活动中执行操作时,窗口小部件才会更新。

如何在午夜后打开手机以反映新日期时,如何强制小部件更新?

我知道我可能需要一个AlarmManager,但我不清楚这些参数。我是否将它放在我的主要活动中并让它调用在我的小部件上调用更新的方法?

3 个答案:

答案 0 :(得分:3)

以类似的方式,我有一项服务,我想在某个时间运行。当这项服务完成它的工作后,它会更新我的小部件并自行停止(服务)。这是我在指定时间启动服务的片段

Intent mSrvcIntent = new Intent(packageContext, MyService.class);
PendingIntent mSrvcPendingingIntent = PendingIntent.getService(packageContext,0, mSrvcIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager mAlarmManager = (AlarmManager)context.getSystemService(android.content.Context.ALARM_SERVICE);
mAlarmManager.set(AlarmManager.RTC_WAKEUP, time to start service, mSrvcPendingingIntent);

我希望这足以让你能够解决问题

答案 1 :(得分:0)

将此广告添加到您的清单小部件接收器

 <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
            <action android:name="android.intent.action.DATE_CHANGED" />...

onReceive()将触发

答案 2 :(得分:0)

这对我有用:

<intent-filter>
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
    <action android:name="android.intent.action.DATE_CHANGED"/>
    <action android:name="android.intent.action.TIME_SET"/>
</intent-filter>