次の方法を使用して、AlramManagerを使用してsetAlarmを実行しています。
public static void scheduleAlarmReceiverOnce(Context context,String did,long time) {
AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent =PendingIntent.getBroadcast(context, 0, new Intent(context, AlarmReciever.class),PendingIntent.FLAG_CANCEL_CURRENT);
alarmMgr.set(AlarmManager.RTC_WAKEUP,time, pendingIntent);
}
ここでどのイムを呼んでいますか
Utils.scheduleAlarmReceiverOnce(this, did,Calendar.getInstance().getTimeInMillis()+30000);
正常に動作しているということは、私の放送でアラームが正確に正確に発生していることを意味します。トーストを表示しているimは正確に30秒で表示されます。私の問題は、再起動するか、無駄な時間を計算して差し引き、アラームを再度スケジュールするときに、残りの時間で再起動または再起動することです。ブートレシーバーで、アラームが再スケジュールされるサービスを再開しています。
Utils.scheduleAlarmReceiverOnce(this, did,Calendar.getInstance().getTimeInMillis()+leftime);
残り時間のimが正しく取得されている場合..正確に約17000または20000、つまり; 約20秒しかし私のアラームは20秒待たずに即座にトリガーされます。
ヘルプplz..事前に感謝します