如何在android中设置警报
我是android的新手 我正在开发一个祈祷应用程序。该功能是用户将设置一个时间,并在该特定时间播放整个月的祈祷 所以我是这样做的:如何在android中设置警报,android,Android,我是android的新手 我正在开发一个祈祷应用程序。该功能是用户将设置一个时间,并在该特定时间播放整个月的祈祷 所以我是这样做的: for (int counterAlarm = 0; counterAlarm < spanDays; ++counterAlarm) { alarmPendingIntent = CreatePendingIntent(context, String.valueOf(100 + count
for (int counterAlarm = 0; counterAlarm < spanDays; ++counterAlarm) {
alarmPendingIntent = CreatePendingIntent(context,
String.valueOf(100 + counterAlarm));
SetAlarmForDay(context, calendarMorningReminder,
alarmPendingIntent);
calendarMorningReminder.add(Calendar.DAY_OF_MONTH, 1);
sbRequestCodes.append(String.valueOf(100 + counterAlarm));
sbRequestCodes.append(";");
}
所以我有两个问题:
在android中,注册所有30个警报已经足够好了。还是有更好的方法来解决这个问题
我们的应用程序与android gingerbread向后兼容,因此我们对更高版本使用了setExact方法,而对所有其他较低版本使用了set方法。这种方法够神用吗
请帮助。我没有立即看到您的代码中有问题或错误。你有什么问题吗,或者你只是问你的代码是否遵循推荐的实践标准?我认为它看起来不错,我没有看到任何错误的部分。@Knossos-不,警报被触发了,我关心的是我的方法是好是坏,或者有更好的方法。@BhavdipPathar-更新我的答案,你认为这种方法很好,有30个注册警报吗?你的方法很好。但是,你会想做30天以上,对吗?你可能每天都需要祈祷提醒?在这种情况下,您应该在5月7日注册。每次检查当前注册的数量。如果登记的报警少于7个,则登记更多报警,直到有7个。
private static PendingIntent CreatePendingIntent(Context context,
String requestCode) {
Intent intent = new Intent(context, ApplicationBroadcastReceiver.class);
intent.setAction(Constants.INTENT_ACTION_ALARM_RAISED);
return PendingIntent.getBroadcast(context,
Integer.parseInt(requestCode), intent,
PendingIntent.FLAG_UPDATE_CURRENT);
}
@SuppressLint("NewApi")
private static void SetAlarmForDay(Context context, Calendar calendar,
PendingIntent pIntent) {
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pIntent);
}
}