我正在编写一个需要显示当前日期的Homewidget的应用程序。对于我已经使用报警管理器注册如下: -未启动的闹钟管理器事件(每天注册通知)
Intent intent = new Intent(HomeScreenWidgetProvider.ACTION_UPDATE_DATE);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetId);
intent.setData(getUriData(appWidgetId));
PendingIntent datePendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarms = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarms.cancel(datePendingIntent);
**alarms.setRepeating(AlarmManager.RTC, getTimeForMidnight(), AlarmManager.INTERVAL_DAY, datePendingIntent);**
正如你看到的,上面的代码的通知首先注册为下一12.00从那里上了一天的时间间隔。当我收到来自警报管理器的通知时,我会更新我的小部件中的日期。
虽然有一个大问题。当日期发生变化时(上午12点),我不会收到警报管理器事件。所以日期不会在我的主屏幕小部件中发生变化。
上述代码在模拟器中正常工作,但不在设备上。我正在使用Samsung Galaxy S 19000进行(实时)测试。
使用报警管理器有问题吗?或者是否有接收日期更改通知的另一种方式?
感谢您的回复。但即使手机没有睡着,我也没有收到任何活动。昨天我在网上看到三星Galaxy S. Alos中存在固件缺陷,我已经注册了ACTION_DATE_CHANGED,但这是手动更改日期时的事件。如果您将日期倒退,它不会被解雇。 有没有人知道这样的缺陷?还是有什么可以做的,使其工作? – 2011-05-19 07:24:09