我讓我的後臺服務發送設備的地理數據到API。AlarmManager觸發方式太快
private static long LOCATION_INTERVAL = 1800000;
應該是位置服務的間隔和AlarmManager
。
我火在MainActivity
這樣
Intent i = new Intent(this, typeof(LocationService));
PendingIntent pending = PendingIntent.GetService(this, 1, i,
PendingIntentFlags.CancelCurrent);
AlarmManager alarm = (AlarmManager)GetSystemService(AlarmService);
alarm.SetExact(AlarmType.RtcWakeup, 30000, pending);
那麼第一個報警,在服務本身,我再觸發警報所有的時間這樣
Intent intent = new Intent(this, typeof(LocationService));
PendingIntent pending = PendingIntent.GetService(this, 100, intent,
PendingIntentFlags.CancelCurrent);
AlarmManager alarm = (AlarmManager)GetSystemService(AlarmService);
alarm.SetExact(AlarmType.RtcWakeup,
LOCATION_INTERVAL, pending);
問題:服務獲取所謂的方式太快了(+/-每分鐘!)。
問題:如何讓我的報警管理器堅持到LOCATION_INTERVAL
?
請告訴我'服務的onStartCommand()'返回? – Shaishav
@Shaishav這個'返回StartCommandResult.Sticky;' – Saphire
嘗試使用NON_STICKY。無論xamarin等價物是什麼。 – Shaishav