1

私は、ブルートゥースのオンとオフのタイミングをユーザーに要求し、アラームサービスを使用してそうするアプリケーションを開発するつもりです。テストには次のうなり声コードを使用しました。

Intent myIntent = new Intent(AndroidAlarmService.this, MyAlarmService.class);

 pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);

       AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
       /*
       Calendar calendar = Calendar.getInstance();
       calendar.setTimeInMillis(System.currentTimeMillis());
       calendar.add(Calendar.SECOND, 30);
       alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),  
       pendingIntent);

       */

       Calendar cur_cal = new GregorianCalendar();
       cur_cal.setTimeInMillis(System.currentTimeMillis());
       Calendar cal = new GregorianCalendar();
       cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR));
       cal.set(Calendar.HOUR_OF_DAY, 13);
       cal.set(Calendar.MINUTE, 23);
       cal.set(Calendar.SECOND, 0);
       cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND));
       cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE));
       cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH));

   alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);

しかし、これは私のサービスを午後 1 時 30 分にトリガーしません。コメントアウトされたコードは正常に動作します。現在時刻から 30 分後にアラームをトリガーします。しかし、時間をハードコーディングするとき。うまくいきません。Calender cal のコード スニペットの間違いがわかりません。

私は何を間違っていますか?

4

1 に答える 1

0

繰り返しアラームが必要な場合は、alarmManager.setRepeating(...)代わりに使用する必要があります。alarmManager.set(...)一度だけトリガーされます。

于 2012-05-03T08:42:48.490 に答える