私はバックグラウンドで他のことを行うこのサービスを持っており、常に実行されている必要があります。onCreateで、1日に1回メールを送信するアラームを設定しました。サーバーはフォアグラウンドで実行されていないため、システムによって強制終了されてから再度作成されることがあります。その場合、サーバーは再度アラームを作成し、発生するたびに別の電子メールを送信します。だから私の質問は、それがすでにシステムで繰り返すように設定されている場合、それがアラームをトリガーするのを防ぐ方法はありますか?または、サービス内に、アラームを一度作成して、それを使用して再作成されないようにすることができる別の「場所」はありますか?
public class ObserverService extends Service {
private String BABAS = "babas";
@Override
public void onCreate() {
setRecurringAlarm(this);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
private void setRecurringAlarm(Context context) {
Log.i(BABAS, "entrou no set alarme");
Calendar updateTime = Calendar.getInstance();
updateTime.setTimeZone(TimeZone.getDefault());//getTimeZone("GMT"));
updateTime.set(Calendar.HOUR_OF_DAY, 00);
updateTime.set(Calendar.MINUTE, 00);
Intent downloader = new Intent("ALARME");//context, AlarmReceiver.class);
PendingIntent recurringDownload = PendingIntent.getBroadcast(context,
0, downloader, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarms = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarms.setInexactRepeating(AlarmManager.RTC_WAKEUP, updateTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY, recurringDownload);
}
}