android服务广播(提醒功能)

时间:2012-12-05 02:41:33

标签: android service broadcastreceiver alarmmanager broadcast

我希望在我的应用中使用通知提供提醒功能(通过设置提醒时间)。而且我知道有可能使用服务,广播和闹钟,

如何完成此功能?

我认为有两种方法:

  1. 使用该服务,通知正在服务中
  2. 使用服务发送广播,通知在broadcastReceiver
  3. 第一个问题:

    1. 哪种方式正确或更好?
    2. 如何使用那个闹钟管理器?就像java中的Timer类一样?

1 个答案:

答案 0 :(得分:0)

最简单,最有效的方法是使用AlarmManager来提醒。您需要制作一个接收警报的BroadCastReceiver。您的接收者可以设置notification,因为接收器的onReceive()方法也会接收Context参数。要进行报警,您必须获取AlarmManager类的实例,根据需要制作PendingIntent,然后实际设置报警。

用于设置闹钟的示例代码

Intent intent = new Intent (this, AlarmBroadcastReceiver.class);
PendingIntent pendIntent = PendingIntent.getBroadcast(this, id,  intent, //makes a new intent
PendingIntent.FLAG_UPDATE_CURRENT); //only updates PendingIntent, does not recreate
AlarmManager alarmManager = (AlarmManager) getSystemService (Context.ALARM_SERVICE);
alarmManager.cancel(pendIntent); //used to cancel if previously active
alarmManager.set(AlarmManager.RTC_WAKEUP, timeToExec, //sets the alarm to exectute once
             pendIntent);