Androidでウォーターリマインダーアプリケーションを構築していますが、ユーザーがアプリを開かなくてもその日に複数回水を飲むように思い出させたい放送受信機が送られる)。それを行う最善の方法は何ですか?AlarmManagerとBroadcastReceiverで自分自身を呼び出す複数のブロードキャスト
AlertReceiver.java MainActivity.java
Long alertTime = nextAlarm.getTimeInMillis();
Intent alertIntent = new Intent(this, AlertReceiver.class);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, alertTime,
PendingIntent.getBroadcast(this, 1, alertIntent,
PendingIntent.FLAG_UPDATE_CURRENT));
の
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
public class AlertReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
createNotification(context, "DRINK", "Time to hydrate", "Alert");
}
public void createNotification(Context context, String msg, String msgText, String msgAlert) {
PendingIntent notificationIntent = PendingIntent.getActivity(context, 0,
new Intent(context, MainActivity.class), 0);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_announcement)
.setContentTitle(msg)
.setContentText(msgText)
.setTicker(msgAlert);
notificationBuilder.setContentIntent(notificationIntent);
notificationBuilder.setDefaults(Notification.DEFAULT_ALL);
notificationBuilder.setAutoCancel(true);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, notificationBuilder.build());
}
}
パート
事前に感謝:ここに私のコードです!
に基づいて行うために必要なものを達成すべきです通知を表示するときにあなたの 'AlertReceiver'に入力してください。あなたの活動でそれをやり遂げるのと同じようにすることができなければなりません。また、デバイスの電源が切れたときにすべてのアラームが削除されるため、BOOT_COMPLETEDブロードキャストを探す別のレシーバを作成することをお勧めします。 –
それで、次のアラームが 'AlertReceiver'の中にあるべき時を把握する全過程を行うべきですか? –
これはそれを行う方法の1つです。このようにして、アラームが表示されるたびに自動的に次のアラームもスケジュールされます。注:最初のアラームを登録できるように、ユーザーはアプリを一度開く必要があります。しかしその後、放送受信機はアラームのスケジューリングと表示を処理できます。 –