AlarmManager.AlarmClockInfo的PendingIntent如何工作?

我正在尝试使用AlarmManager.AlarmClockInfo设置警报。

这个构造函数需要花费时间和文档中描述的PendingIntent

一个意图,可以用来显示或编辑闹钟的细节。

然后setAlarmClock( )也接受一个待定的意图,在文档中描述为:

警报closures时执行的操作

我明白通过setAlarmClock( )使用PendingIntent ,然而, AlarmClockInfo使用的PendingIntent又是如何使用它来编辑闹钟的细节呢?

Solutions Collecting From Web of "AlarmManager.AlarmClockInfo的PendingIntent如何工作?"

但是,AlarmClockInfo使用的PendingIntent如何使用它来编辑闹钟的细节?

从这本书引用自己:

setAlarmClock()最大的问题在于它对用户是可见的:

  • 用户会看到他们的状态栏中的闹钟图标,就好像他们已经设置了设备的内置闹钟应用程序的闹钟

  • 用户在完全滑动打开通知栏时会看到闹钟的时间

通知阴影,显示即将到来的警报

  • 在通知PendingIntent点击闹钟时间将调用您放入AlarmClockInfo对象的PendingIntent

所以,鉴于这个代码…:

  static void scheduleAlarms(Context ctxt) { AlarmManager mgr= (AlarmManager)ctxt.getSystemService(Context.ALARM_SERVICE); Intent i=new Intent(ctxt, PollReceiver.class); PendingIntent pi=PendingIntent.getBroadcast(ctxt, 0, i, 0); Intent i2=new Intent(ctxt, EventDemoActivity.class); PendingIntent pi2=PendingIntent.getActivity(ctxt, 0, i2, 0); AlarmManager.AlarmClockInfo ac= new AlarmManager.AlarmClockInfo(System.currentTimeMillis()+PERIOD, pi2); mgr.setAlarmClock(ac, pi); } 

(从这个示例项目 )

…当用户点击通知EventDemoActivity的时间时,会出现EventDemoActivity 。 这个想法是,你应该在这里提供一个活动,允许用户取消或重新安排这个警报。