2

アクティビティがあります。ここに 2 つのボタンがあります。

  1. 「アラーム時刻を選択」のボタン 1。タップすると TimePicker が表示され、アラームの時間を選択します。

  2. 「アラームの設定」のボタン 2。タップするとアラームセット。

私がやっていること:

設定した目覚まし時刻に に電話しBroadcastReceiverます。デモでは、設定したアラームの時間と文字列のみを出力しますToast

クエリとは:

現在の時刻を 4.00 PMのようにアラーム時刻を設定し、アラーム時刻を 6.00 PMに設定すると、アラームは常に を呼び出し、BroadcastReceiverそれはWork Fine.

BUT

現在の時刻が午後 4 時で、アラームを午後 2 時に設定した場合BroadCastReceiver、同時に電話がかかってきますが、このようなことはしたくありません。」

.

AlarmManager には、次のスニペットを使用します。

AlarmManager am = (AlarmManager) getSystemService(SetAlarm.ALARM_SERVICE);

Intent intent1 = new Intent(SetAlarm.this, BroadCast.class);

PendingIntent pendingIntent =  PendingIntent.getBroadcast(SetAlarm.this, 0,intent1,PendingIntent.FLAG_UPDATE_CURRENT);

am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
4

1 に答える 1

0
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, 14);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND,0);

if(calendar.getTimeInMillis()<System.currentTimeMillis())
    {
        calendar.add(Calendar.DATE, 1);
    }
am.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pendingIntent);

このようなことができます。

于 2013-10-24T07:42:34.677 に答える