我想在闹钟管理器运行时运行函数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函数。另外,我是否需要将其作为服务运行,因此如果应用程序将退出,那么它仍然有用吗?
谢谢!
答案 0 :(得分:2)
我看到你将意图传递给警报管理器
您将PendingIntent
传递给AlarmManager
。
还有其他方法吗?
使用AlarmManager
的唯一方法是使用PendingIntent
。 AlarmManager
的目的是在您的应用不再运行时,在将来的某个时间点为您的应用提供控制权。
另外,我是否需要将其作为服务运行,因此如果应用程序将退出,那么它仍然有用吗?
没有。 AlarmManager
的目标特别是允许您的进程被终止,但在将来的某个时间再次让您控制,所以您不会在整个时间内占用内存。