2010-12-07 107 views
0

你好,我有一个关于android的闹钟管理器的问题,我想安排一个闹钟,它会使用初始时间间隔执行,并能够由用户进行更改。我的代码是:android的闹钟管理器

long firstTime = SystemClock.elapsedRealtime(); 
mAlarmSender = PendingIntent.getService(mContext, 0, new Intent(mContext,AlarmService_Service.class), 0); 
this.setInterval(Integer.parseInt(Interval)); 
configShared.edit().putInt("interval", this.getInterval()).commit(); 
// Schedule the alarm! 
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE); 
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime,this.getInterval(), mAlarmSender); 

的this.getInterval()是保持间隔的方法和用于检查是否用户已经改变的时间间隔。

阅读我alarmManagers setRepeating方法的参数,说下找到的文档:

triggerAtTime时间报警应先熄灭,使用相应的时钟(取决于报警类型)

到底是什么这个?当我更改间隔时,闹钟是否取消?还有一个问题,因为我喜欢这个代码每5分钟执行一次,这将每5分钟执行+ firstinterval是否正确?

回答

0

这是什么意思?

这似乎是不言自明的。这是警报首先熄灭的时间。此后的闹钟将在您指定的时间后关闭。

当我更改间隔时,闹钟是否取消?

没有“改变间隔”这样的东西。您可以设置警报并取消警报。您不能更新警报,除非取消旧的并添加新警报。

还有一个问题,因为我喜欢这个代码每5分钟执行一次,这将每隔5分钟执行+ firstinterval是否正确?

第一个将发生在firstTime。第二个将发生在firstTime加上五分钟。第三个将发生在firstTime加上十分钟。等等。由于firstTime现在,第一个警报应立即停止。

+0

根据文档“如果已经为同一个IntentSender安排了闹钟,它将首先被取消。”这不允许你改变时间间隔,因为改变时间间隔取消了旧的闹钟,并以新的时间间隔设置了一个新的时间 – maxsap 2010-12-07 22:33:43