毎日通知が表示されるのに問題があります。アラーム通知が表示されない
私のアプリケーションには、ユーザが何かを思い出させることを望む時間、時間、分が得られます。
次に、AlarmManager
を使用して、この時点でアラーム受信者を使用して通知を作成しながらアラームを設定します。
私はこれを数時間試してきましたが、私が間違っていることを理解できません。
私は他のSOの質問を見てきましたが、私はまだ助けてくれませんでした。
私は、日付オブジェクトget habitReminderにユーザーの時分入力を保存しました。
マイcreateNotifications()
方法:
private void createNotifications() {
Log.i("Reminder at",""+habitReminder.getHours()+":"+habitReminder.getMinutes());
//Create the alarms/notifications for the user
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
alarmIntent.putExtra("name", habitName);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
Log.i("createNotifications", "Alarm manager is created.");
//Set the timing of the reminder
Calendar calendar = Calendar.getInstance();
Calendar now = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, habitReminder.getHours());
calendar.set(Calendar.MINUTE, habitReminder.getMinutes());
calendar.set(Calendar.SECOND,0);
//Check to make sure time is after the current date.
if(calendar.before(now)){
calendar.add(Calendar.DATE, 1);
}
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
Log.i("createNotifications", "Alarm has been set for " +habitReminder.getHours()+":"+habitReminder.getMinutes() +" daily.");
}
マイ警報受信機クラス:
public class AlarmReceiver extends BroadcastReceiver {
private static int id =0;
@Override
public void onReceive(Context context, Intent intent) {
String name = intent.getStringExtra("name");
String title = name + " Reminder!";
String message = "Your reminder to keep up your habit!";
long when = System.currentTimeMillis();
Intent in = new Intent(context, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(context,0,in,PendingIntent.FLAG_CANCEL_CURRENT);
NotificationManager nM = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(context)
.setContentIntent(contentIntent)
.setContentTitle(title)
.setContentText(message)
.setSmallIcon(R.mipmap.ic_launcher)
.setAutoCancel(true)
.setWhen(when);
Notification notification = builder.build();
nM.notify(id,notification);
id++;
}
}
そして、私のアンドロイドmanifest
:
<receiver android:name="com.closedbracket.trackit.AlarmReceiver" android:enabled="true">
</receiver>
どんな助けも本当に感謝します。
を参照することができます。 –
私は 'setExact(AlarmManagaer ...)'の例を持っています。それは私のために役立ちますので、[AlarmManagerの作成と設定](https://stackoverflow.com/a/44303234/5212904)、それ'ActivityManager'から' AlarmManager'を取り消す方法についても説明します。それで受信機に届いたら、半分の方法で済んでいて、 'Notification'が正しく実装されているかどうかという疑問があります。 – ArtiomLK