Java 如何使用SetExactAndAllowHileId重复报警
我想用setExactAndAllowileIdle在特定时间设置Alaram,我也想重复,但找不到如何重复。有没有有效的解决方案 Java 私有void setAlaramforchanging(){Java 如何使用SetExactAndAllowHileId重复报警,java,android,android-studio,Java,Android,Android Studio,我想用setExactAndAllowileIdle在特定时间设置Alaram,我也想重复,但找不到如何重复。有没有有效的解决方案 Java 私有void setAlaramforchanging(){ alarmManager = (AlarmManager) requireContext().getSystemService(ALARM_SERVICE); Intent intent = new Intent(requireContext(), reminderbroadca
alarmManager = (AlarmManager) requireContext().getSystemService(ALARM_SERVICE);
Intent intent = new Intent(requireContext(), reminderbroadcast.class);
p = PendingIntent.getBroadcast(requireContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
int wakeminute = preferenceHelper.GetPreferences2("wakeminute");
int wakehour = preferenceHelper.GetPreferences2("wakehour");
calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, wakehour);
calendar.set(Calendar.MINUTE, wakeminute);
long every = 24 * 3600000;
int repeatSeconds = 10;
if (Build.VERSION.SDK_INT < 23) {
if (Build.VERSION.SDK_INT >= 19) {
if (System.currentTimeMillis() < calendar.getTimeInMillis())
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), p);
} else {
if (System.currentTimeMillis() < calendar.getTimeInMillis())
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), p);
}
} else {
if (System.currentTimeMillis() < calendar.getTimeInMillis())
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), p);
}
}
PreferenceHelper preferenceHelper;
AlarmManager alarmManager;
Calendar calendar;
int repeat = 60;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onReceive(Context context, Intent intent) {
preferenceHelper = new PreferenceHelper(context);
preferenceHelper.SavePreferences2("watertakeninitial", 0);
preferenceHelper.SavePreferences2("progressbar", 0);
Toast.makeText(context, "i am showing this notification", Toast.LENGTH_LONG).show();
}