1

毎月 5 日の午後 3 時に、alarmManager にタスクを実行させたいと考えています。どうすればいいですか?

  • 最初の起動は、ユーザーがアプリをインストールする時期によって異なります。わかりました、月の次の 5 日までに何ミリ秒かかるかを計算する計算を行うことができますが、もっと簡単な方法があることを願っています

  • 繰り返しオプションは本当に頭痛の種です。固定間隔は 1 つしか設定できません。しかし、2 か月間の時間は固定されていません。

これをどのように行うのが最善でしょうか?

よろしく、A.

4

1 に答える 1

0

これをもっと簡単に行うことができます。Date クラスを見てください: http://developer.android.com/reference/java/util/Date.html

そして、擬似のようなものを試してください:

// This month 5th
Date date = new Date();
date.setDay(5);
// Next month the 5th
Date nextDate = new Date();
nextDate.setDay(5);
nextDate.setMonth(date.getMonth()+1);

年末になると問題が発生するでしょうが、現在よりも問題は少なくなっています。

他にも Date API があり、年の問題を解決してくれる API もあります。ちょっと見て回ってください。

編集

カレンダーの使用が推奨されていないことに気付きました:

http://developer.android.com/reference/java/util/Calendar.html

Calendar now = Calendar.getInstance();
now.setField(Calendar.DAY_OF_MONTH, 5);
// Next month the 5th
Calendar nextDate = new = Calendar.getInstance();
nextDate.setField(Calendar.DAY_OF_MONTH, 5);
nextDate.setField(Calendar.MONTH_OF_YEAR, date.getField(Calendar.MONTH_OF_YEAR)+1); // issues in december
于 2011-03-31T15:22:11.183 に答える