1

リマインダーを実装するには、「今日から、毎週金曜日にメモを表示し、1週間ははい、1週間はいいえ」のようなメモを設定する必要があります。したがって、メモごとに次の日付を決定できると思います。私はそれを示さなければなりません。そして、この日付を次のようなタイマーに渡します。

 Timer timer = new Timer();

 timer.schedule(new TimerTask() {

                public void run() {
                    //show my memo    
                     });

                }}, date); // 

今が2012年11月26日月曜日だとすると、最初の金曜日がいつ発生するかをどのように判断できますか(前述のメモによると?

このメカニズムが十分に良いかどうかはわかりません。誰かが私に別のアプローチを提案してくれるなら、私は感謝するでしょう。

4

1 に答える 1

3

Timer は、これに使用するのに適したクラスではありません。AlarmManager を見て、それを使用してイベントをスケジュールする必要があります。

AlarmManager.set() を使用して特定のアラームを設定し、AlarmManager.setInexactRepeating() を使用して正確さに関してある程度の柔軟性を持つ繰り返しアラームを設定し、setRepeating() を使用して正確な繰り返しアラームを設定できます。

いずれの場合も、アラームが発生したときに起動される PendingIntent を設定し、アプリケーションでそのインテントを正しく処理できるように準備する必要があります。

その PendingIntent が起動されたときに必ずしもアクションを実行する必要はないことに注意してください。条件が正しいかどうかを確認するだけで済みます (たとえば、その時点でユーザーに通知するかどうかに関するロジックを追加できます)。

AlarmManager と PendingIntent の詳細:

http://developer.android.com/reference/android/app/AlarmManager.html

http://developer.android.com/reference/android/app/PendingIntent.html

また、再起動後はアラームが保持されないため、デバイスの再起動後にアラームを再インストールできるように、ブロードキャスト レシーバーを「ブート シーケンス完了」イベントに追加する必要があることに注意してください。

于 2012-11-26T21:50:58.480 に答える