2
我正試圖安排一項服務在用戶指定的時間每天運行。我正在使用一個時間選擇器來讓用戶控制該服務的運行時間。MonoDroid - 使用報警管理器的每日定時服務?
每當用戶更改服務運行的時間,我正在更新警報管理器。
這裏是我的代碼來做到這一點:
void RescheduleOpeningRatesRetriever (string strTime)
{
var i = new Intent (this.ApplicationContext, typeof (OpenRatesService));
var src = PendingIntent.GetService (this.ApplicationContext, 0, i, PendingIntentFlags.UpdateCurrent);
var am = (AlarmManager)this.ApplicationContext.GetSystemService (Context.AlarmService);
var hour = TimePickerPreference.GetHour (strTime);
var minute = TimePickerPreference.GetMinute (strTime);
var cal = Java.Util.Calendar.GetInstance (Java.Util.TimeZone.Default);
cal.Set (Java.Util.CalendarField.HourOfDay, hour);
cal.Set (Java.Util.CalendarField.Minute, minute);
am.SetRepeating (AlarmType.RtcWakeup, cal.TimeInMillis, AlarmManager.IntervalDay, src);
}
我不是100%肯定,如果代碼被調度,因爲我已經從我的測試結果好壞參半的服務才能正常運行。
我現在遇到的問題是每次我重新安排服務以上述代碼運行,服務即刻啓動....我不想啓動服務,直到配置的時間天。
如何安排和更新服務,使其在一天中的指定時間運行,而無需使用警報管理器進行安排即時運行服務?