我有一个小部件,显示当前日期等。但是,当用户在主活动中执行操作时,窗口小部件才会更新。
我将如何强制小部件在下午午夜后打开电话时更新以反映新日期?
我知道我可能需要一个AlarmManager,但我不清楚参数。我是否将它放在我的主要活动中并让它调用在我的小部件上调用更新的方法?
在类似的风格,我有一个我想在某个时间运行的服务。当这项服务完成它的工作后,它会更新我的小部件并自行停止(服务)。这是我在指定时间启动服务的片段
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);
我希望这足以让你能够解决你的问题
将此广告发送给您的清单小部件接收
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="android.intent.action.DATE_CHANGED" />...
onReceive()会触发
这对我有用:
<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>