我遇到了Android AlarmManager的問題。我想每天早上00:01顯示通知。當我在白天的上午11:30進行通知測試時,通知確實顯示出來。但是當我在00:01測試它時,什麼都沒有顯示出來。Android AlarmManager不在夜間工作
我認爲這與我的手機在00:01上午幾小時無活動後睡着了,但我不確定。有沒有人有這個解決方案?提前致謝。
MainActivity:
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager manager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 1);
Calendar now = Calendar.getInstance();
now.setTimeInMillis(System.currentTimeMillis());
if (calendar.before(now)) {
calendar.add(Calendar.DAY_OF_MONTH, 1);
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pendingIntent);
} else {
manager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pendingIntent);
}
AlarmReceiver:
private static int NOTIFICATION_ID;
private NotificationManager notificationManager;
private PendingIntent pendingIntent;
Intent mIntent;
@Override
public void onReceive(Context context, Intent intent) {
NOTIFICATION_ID = random.nextInt(9999 - 1000) + 1000;
notificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
mIntent = new Intent(context, BirthdayActivity.class);
pendingIntent = PendingIntent.getActivity(context, NOTIFICATION_ID, mIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
builder.setContentTitle("Name");
builder.setContentIntent(pendingIntent);
notificationManager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, builder.build());
}
清單:
<receiver android:name=".utils.AlarmReceiver" android:enabled="true">
</receiver>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
什麼是你的「請勿打擾」設置設爲? – ProgrammersBlock