毎日アラームを9.00 AM、11 AM、1PMに設定する必要があります。アンドロイドで毎日アラームを3回鳴らすには?
単純な解決策は、3つの異なる保留中のインテントを使用することですが、保留中のインテントと同じものを実装する他の方法はありますか?
ありがとうございました!
毎日アラームを9.00 AM、11 AM、1PMに設定する必要があります。アンドロイドで毎日アラームを3回鳴らすには?
単純な解決策は、3つの異なる保留中のインテントを使用することですが、保留中のインテントと同じものを実装する他の方法はありますか?
ありがとうございました!
おかげで、手に入れた溶液を
は、同じテントに要求コードを変更する必要があります。以前のアラームはキャンセルされません。 Click Here溶液の場合
いつでもスケジュールする必要があるアラームの数が限られている場合は、アラームごとにPendingIntent
を使用しても問題ありません。
しかし、スケジュールする予定のアラームの数が無制限(またはたぶん多く)の場合は、スケジューリング情報を処理できるスケジューラを提供する方が良いと思います。たとえば、毎日1つまたは複数のイベントを設定できるカレンダーのようなものを作成する必要がある場合は、このような注意事項を考慮する必要があります。あなたが必要な次のアラームを決定する方法
void scheduleNextAlarm(Context context, AlarmManagerInterface alarmManager,
int batchSize, long currentMillis)
を持っているAlarmScheduler
という名前のクラスがある見ることができるように
あなたはthaのAndroid Calendar project
のアラームセクションを見てみることができますスケジュールされる。
queryUpcomingEvents()
コンテンツプロバイダ(Calendar provider)上で動作し、今後のイベントを取得する:あなたはメソッドが別のメソッドを呼び出すことがわかります、特定の実装では
。
新しいアラームをトリガするたびに、新しいアラームを再スケジュールしたり、コンテンツプロバイダ(またはスケジュール情報を保存する場所)を調べたり、さまざまなスケジュールポリシーを適用したりすることができます。たとえば、カレンダーの予定の新しい予定者をユーザーが作成した場合は、アラームのスケジュールを変更する必要があります(たとえば、今日のすべてのアラームまたは次のアラームのみをスケジュールすることができます)。私は通常(アラーム火災トリガされBroadcastReceiver
のonReceive()
内側)以下のコードを使用し私のアプリケーションでは
:
private void restartScheduler(Context context){
Intent t = new Intent("it.gvillani.socialapp.alerts.SCHEDULE_REQUEST");
context.sendBroadcast(t);
}
をそしてもちろん、私は、そのアクションを待っBroadcastReceiver
を持っており、
public class SchedulerReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context c, Intent intent) {
if (intent.getAction().equals("it.gvillani.socialapp.alerts.SCHEDULE_REQUEST")) {
startScheduler(c);
}
}
private void startScheduler(Context c) {
AlarmScheduler.clearAlarms(c);
AlarmScheduler.scheduleNextAlarm(c);
}
}
ヒント:ArrayList :) –
これは、正確には何を意味するかによって異なります。つまり、 'AlarmManager'の' set *() 'コールで異なる時刻に3つの繰り返しアラームを設定することができます。 –
両方のおかげで、@Mike M、1つの意図で同じことをする方法はありますか? – Swap