0

私のアプリケーションは、以下のコードを使用して、「毎日」ベースでサービスを実行するように Alaram を設定します。

AlarmManager alarmManager = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
        Intent i = new Intent(ctx, SchedulerEventReceiver.class); // explicit// intent

        Calendar now = Calendar.getInstance();
        now.add(Calendar.SECOND, 20);
        PendingIntent intentExecuted = PendingIntent.getBroadcast(ctx, new Random().nextInt(), i,PendingIntent.FLAG_CANCEL_CURRENT);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, now.getTimeInMillis(), AlarmManager.INTERVAL_DAY, intentExecuted);

adb shell dumpsys alarm適切な詳細を表示します。毎日実行されるようにスケジュールされているように。ただし、携帯電話に .apk をインストールすると、繰り返し実行されます。実行するのに1日もかかりません。

電話に設定されたアラームをリセットする方法がわかりません。アプリと新しくインストールしたアプリをアンインストールしましたが、機能しませんでした。誰かが何が悪いのか教えてもらえますか?

4

2 に答える 2

1

私はこれを使用しましたが、これは私にとってはうまく機能しています。このアラームを使用して、18 日後にトリガーしました。そして18日後に再び:

long time = 1555200000L; //18 days = 18*24*60*60*1000 = 1555200000L
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(context, tag, i, PendingIntent.FLAG_CANCEL_CURRENT);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+time, time, pi); 
于 2013-03-08T19:06:07.717 に答える
0

今、あなたは1分20秒でオフにするように言っています

now.add(Calendar.SECOND, 20);

時間と可能な分を追加する必要があります

 now.add(Calendar.HOUR, 12) //set your hour here. noon right now

また

now.add(Calendar.HOUR_OF_DAY, 12)

カレンダー

于 2013-03-08T18:55:08.750 に答える