2010-12-30 25 views
22

私はスケジュールを作ろうとしています。それは、この意志...私はそれがすべて10秒または10分を実行することができます現時点では...午後1時または午後2時、毎日AlarmManager Android毎日

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, 10); 
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 

Toast.makeText(AndroidAlarmService.this, "Start Alarm", Toast.LENGTH_LONG).show(); 

おかげ

答えて

-10

を実行する必要があります

毎日アラーム。

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, AlarmManager.INTERVAL_DAY , pendingIntent); 
+5

'()'一度だけ発生しますセット。 'setRepeating()'は毎日起動します。 – CommonsWare

+0

ご迷惑をおかけして申し訳ありません。 –

+0

-1このコードは正しくありません(SDK 2.1以降)。 AlarmManager.setRepeatingは3ではなく4つのパラメータを受け入れます。 – Valentin

89

このコードは、1 PMに毎日意向を実行するか、2 PM

Calendar calendar = Calendar.getInstance(); 

calendar.set(Calendar.HOUR_OF_DAY, 13); // For 1 PM or 2 PM 
calendar.set(Calendar.MINUTE, 0); 
calendar.set(Calendar.SECOND, 0); 
PendingIntent pi = PendingIntent.getService(context, 0, 
      new Intent(context, MyClass.class),PendingIntent.FLAG_UPDATE_CURRENT); 
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
           AlarmManager.INTERVAL_DAY, pi); 
+21

calendar.add(Calendar.DAY_OF_YEAR、1);すぐにアラームを発しないようにしてください。 – ben

+0

calendar.set(Calendar.MILLISECOND、0)を追加することもできます。もっと正確にするには: – JDJ

+1

これは、アプリケーションがバックグラウンド/クローズ/一時停止になったときにも実行されますか? –

関連する問題