特定の日時に通知を表示するクラスを作成しました。これは、通知を作成するためのクラスのソース コードです。
public class TimeAlarm extends BroadcastReceiver {
public static NotificationManager mNotificationManager;
public static int SIMPLE_NOTFICATION_ID = 0;
@Override
public void onReceive(Context context, Intent intent) {
mNotificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
CharSequence from = "Scheduled Training";
CharSequence message = "Please attend the scheduled training";
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
new Intent(context, TextToSpeechScreen.class), 0);
//OLD CODE
Notification notifyDetails = new Notification(R.drawable.ic_launcher,
"Barclays Scheduled Training", System.currentTimeMillis());
notifyDetails.setLatestEventInfo(context, from, message, contentIntent);
notifyDetails.flags |= Notification.FLAG_AUTO_CANCEL;
// Play default notification sound
notifyDetails.defaults |= Notification.DEFAULT_SOUND;
// Vibrate if vibrate is enabled
// notifyDetails.defaults |= Notification.DEFAULT_VIBRATE;
mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);
}
}
これは、特定の時間に通知を設定するためにアクティビティから呼び出しているメソッドです。
// setting alarm
public void setOneTimeAlarm() {
// the time set
Calendar calendar = GregorianCalendar.getInstance();
// calendar.setTime(model.getStartDate());
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, model.getStartTimeHour());
// calendar.set(Calendar.HOUR_OF_DAY, 10);
calendar.set(Calendar.MINUTE, model.getStartTimeMinutes());
// calendar.set(Calendar.MINUTE, 53);
calendar.set(Calendar.SECOND, 0);
Intent intent = new Intent(this, TimeAlarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
intent, count);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
pendingIntent);
}
すべてが正常に機能しています。今度は、通知をバックグラウンド プロセスから起動できるように、TimeAlarmクラスにサービスを実装する必要があります。これをどのように実装すればよいですか?バックグラウンド プロセスを使用して通知を送信することはできますか? 前もって感謝します!