2010-12-07 105 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