工作后,我有一个问题我的告警管理, 我正在与timepickerdialog, 一个报警经理,但我想保持它重新启动后的工作, 我试图添加的Android报警经理不断重启
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<receiver android:name=".AlarmNotificationReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
在我的清单中,但是当我重新启动我的设备时,它会立即报警。
这是我的活动代码:
private void alarmManager(Calendar calendarTime,int id) {
pendingIntent = PendingIntent.getBroadcast(this, id, intent, pendingIntent.FLAG_UPDATE_CURRENT);
if(calendarTime.before(now)) {
calendarTime.add(Calendar.DATE,1);
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendarTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
calendarTime.add(Calendar.DATE,-1);
}
else
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendarTime.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
}
这是我的接收器代码:
public void onReceive(Context context, Intent intent) {
if(intent.getStringExtra("contentTitle")!=null)
contentTitle=intent.getStringExtra("contentTitle");
if(intent.getStringExtra("contentText")!=null)
contentText =intent.getStringExtra("contentText");
Intent notifiIntent =new Intent(context,Home_Activity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notifiIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder=new NotificationCompat.Builder(context);
builder.setAutoCancel(true)
.setDefaults(Notification.DEFAULT_ALL)
.setSmallIcon(R.drawable.tooth_icon)
.setContentTitle(contentTitle)
.setContentText(contentText)
.setContentIntent(pendingIntent)
.setDefaults(Notification.DEFAULT_LIGHTS|Notification.DEFAULT_SOUND);
NotificationManager notificationManager=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0,builder.build());
}
这是我的代码,我通过我的时间到报警功能:
protected TimePickerDialog.OnTimeSetListener morningTimePickerListener =new TimePickerDialog.OnTimeSetListener(){
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
m_calendar.setTimeZone(java.util.TimeZone.getTimeZone("GMT+8"));
if(hourOfDay>12)
hourOfDay-=12;
m_calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
m_calendar.set(Calendar.MINUTE, minute);
m_calendar.set(Calendar.SECOND, 0);
m_calendar.set(Calendar.MILLISECOND, 0);
m_time= simpleDateFormat.format(m_calendar.getTime()).trim();
m_alarm.setText("AM "+m_time);
view.setCurrentHour(hourOfDay);
view.setCurrentMinute(minute);
alarmManager(m_calendar,0);
morningRef.setValue(m_time);
Toast.makeText(Setting_Activity.this,m_calendar.getTime()+"",Toast.LENGTH_LONG).show();
}
};
如何在重新启动后保留警报管理器? plz
你的代码在哪里传递日历到闹钟功能? –
我编辑我的职务:) – ChienFeng
检查现有的答案: https://stackoverflow.com/questions/20065433/alarm-doesnt-trigger-after-reboot https://stackoverflow.com/questions/17941371/repeating-alarm -manager-后重启 https://stackoverflow.com/questions/12034357/does-alarm-manager-persist-even-after-reboot https://stackoverflow.com/questions/39442607/how-to-reset -alarm-after-reboot-android-studio – dominicoder