Tôi nhận được thông báo lúc 10:30 tối. Nhưng khi thiết bị của tôi tắt lúc 10:30 PM và sau đó sau khi tôi bật thiết bị của mình lúc 11:00 PM, tôi không nhận được thông báo đang chờ xử lý. Vì vậy, tôi không hiểu whats vấn đề là. bất kỳ trợ giúp sẽ đánh giá cao.Không thể đặt báo thức lặp lại khi khởi động
Đây là mã của tôi trong hoạt động khi tạo.
Intent alarmIntent = new Intent(CH_Dashboard.this, TimeAlarmEvening.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(CH_Dashboard.this, 0, alarmIntent, 0);
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar firingCal = Calendar.getInstance();
Calendar currentCal = Calendar.getInstance();
firingCal.set(Calendar.HOUR, 10);
firingCal.set(Calendar.MINUTE, 30);
firingCal.set(Calendar.SECOND, 0);
firingCal.set(Calendar.AM_PM,Calendar.PM);
long intendedTime = firingCal.getTimeInMillis();
long currentTime = currentCal.getTimeInMillis();
if(intendedTime >= currentTime)
{
manager.setRepeating(AlarmManager.RTC,
intendedTime, AlarmManager.INTERVAL_DAY,
pendingIntent);
}
else
{
firingCal.add(Calendar.DAY_OF_MONTH, 1);
intendedTime = firingCal.getTimeInMillis();
manager.setRepeating(AlarmManager.RTC,
intendedTime, AlarmManager.INTERVAL_DAY,
pendingIntent);
}
Mã nhận của tôi ở đây và nhận thông báo thành công khi thiết bị BẬT.
Intent notificationIntent = new Intent(context, CH_Dashboard.class);
notificationIntent.putExtra("fromNotification","notify");
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(CH_Dashboard.class);
stackBuilder.addNextIntent(notificationIntent);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setAutoCancel(true);
Notification notification = builder.setContentTitle("Demo App Notification")
.setContentText("New Notification From Demo App..")
.setTicker("New Message Alert!")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pendingIntent).build();
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);
đây là mã nhận khởi động của tôi.
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
{
Intent alarmIntent = new Intent(context, TimeAlarmEvening.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0);
AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Calendar firingCal = Calendar.getInstance();
Calendar currentCal = Calendar.getInstance();
firingCal.set(Calendar.HOUR, 10);
firingCal.set(Calendar.MINUTE, 30);
firingCal.set(Calendar.SECOND, 0);
firingCal.set(Calendar.AM_PM,Calendar.PM);
long intendedTime = firingCal.getTimeInMillis();
long currentTime = currentCal.getTimeInMillis();
if(intendedTime >= currentTime)
{
manager.setInexactRepeating(AlarmManager.RTC,
intendedTime, AlarmManager.INTERVAL_DAY,
pendingIntent);
}
else
{
firingCal.add(Calendar.DAY_OF_MONTH, 1);
intendedTime = firingCal.getTimeInMillis();
manager.setInexactRepeating(AlarmManager.RTC,
intendedTime, AlarmManager.INTERVAL_DAY,
pendingIntent);
}
}
Và cuối cùng trong bản kê khai tôi đã khai báo.
<receiver
android:name=".model.AutoStart"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<receiver android:name=".TimeAlarmEvening">
<intent-filter>
<action android:name="android.media.action.DISPLAY_NOTIFICATION_EVENING" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>