0
私は毎日の通知と同じレシーバクラスの1時間ごとの通知を表示するために2つのアラームを実行しようとしていますが、同じ機能を使用していますが、私はデバイスを再起動した後、 BOOT_COMPLETEDの、私はこれを達成することができる方法があることを知りたいですか?同じ受信機クラスと同じ機能を使用して複数のアラームを設定するにはどうすればよいですか?
マイalarm_receiverクラス: -
public class alarmreceiver extends BroadcastReceiver {
static int id;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm running", Toast.LENGTH_SHORT).show();
start(context,id);
}
static void start(Context context,int id) {
if (id==1) {
Intent intent = new Intent(context, notification_receiver.class);
PendingIntent pendingintent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(), 60 * 1000
, pendingintent);
} else
if (id == 2) {
Intent intent = new Intent(context, notification_receiver.class);
PendingIntent pendingintent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, 10);
calendar.set(Calendar.MINUTE, 14);
calendar.set(Calendar.AM_PM, Calendar.PM);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingintent);
}
}
}
私は、ボタンのクリックイベントの下で私のメインの活動でこの関数を呼び出しています: -
butn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (r1.isChecked()) {
alarmreceiver.start(getApplicationContext(),2);
Toast.makeText(getApplicationContext(), "Daily Affirmations Scheduled", Toast.LENGTH_SHORT).show();
//
}
if(r2.isChecked())
{
alarmreceiver.start(getApplicationContext(),1);
Toast.makeText(getApplicationContext(), "Hourly Affirmations Scheduled", Toast.LENGTH_SHORT).show();
}
どのように私は、同じ警報受信機のクラスを使用することによって、これを達成することができます関数を使用していますか?ありがとう。