使用报警管理器的服务

时间:2011-05-13 10:55:09

标签: android alarmmanager

这是我的代码,但它不起作用。

在设置活动中:

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, OnBootReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime()+1000, 
                 pendingIntent);

在BroadcastReceiver中:

NotificationManager mgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence from = "xyz";
CharSequence message = "Crazy About Android...";
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(context, Settings.class), 0);
Notification notif = new Notification(R.drawable.icon,  "Crazy About Android...", System.currentTimeMillis());
notif.setLatestEventInfo(context, from, message, contentIntent);
mgr.notify(1, notif);

1 个答案:

答案 0 :(得分:0)

如果您尝试使用AlarmManager.RTC_WAKEUP单位在1秒钟内开始您的意图, 您可能希望使用System.currentTimeMillis()代替SystemClock.elapsedRealtime()

这里解释了不同之处: http://developer.android.com/reference/android/os/SystemClock.html AlarmManager.RTC_WAKEUP必须与currentTimeMillis()一起使用;

否则你可以使用标志: AlarmManager.ELAPSED_REALTIME_WAKEUP提供使用SystemClock.elapsedRealtime()

计算的时间

这里解释了标志:http://developer.android.com/reference/android/app/AlarmManager.html