Alarm Manager完成后如何运行功能?

时间:2013-11-30 17:06:37

标签: java android android-intent alarmmanager

我想在闹钟管理器运行时运行函数foo(),但我还不明白我该怎么做。我看到你将一个意图传递给警报管理器,还有其他方法吗?

 public void SetAlarm()
 {
 Calendar cal = Calendar.getInstance();
  cal.set(Calendar.HOUR_OF_DAY, 19);
cal.set(Calendar.MINUTE, 03);
  cal.set(Calendar.SECOND, 0);
 cal.set(Calendar.MILLISECOND, 0);

    AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
     Intent intent = new Intent(this, MainActivity.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
      alarmMgr.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
}

如您所见,我不确定如何正确使用alarmMgr.set函数。另外,我是否需要将其作为服务运行,因此如果应用程序将退出,那么它仍然有用吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

  

我看到你将意图传递给警报管理器

您将PendingIntent传递给AlarmManager

  

还有其他方法吗?

使用AlarmManager的唯一方法是使用PendingIntentAlarmManager的目的是在您的应用不再运行时,在将来的某个时间点为您的应用提供控制权。

  

另外,我是否需要将其作为服务运行,因此如果应用程序将退出,那么它仍然有用吗?

没有。 AlarmManager的目标特别是允许您的进程被终止,但在将来的某个时间再次让您控制,所以您不会在整个时间内占用内存。