[In Java]ねえ、私はウェブ上でたくさんのものを探しましたが、見つけた唯一のものは私にとってはうまくいきません。私が必要とするのは、ユーザーのカレンダーから毎週特定のタスクを実行することです。ユーザーがアプリケーションを開かなくても時間をカウントしたいと思っています。私がインターネット上で見つけたものは、ユーザーがアプリを起動するたびにカレンダーをリセットします。カレンダー付きタイマー/スケジューラの使用
ありがとうございました。
[In Java]ねえ、私はウェブ上でたくさんのものを探しましたが、見つけた唯一のものは私にとってはうまくいきません。私が必要とするのは、ユーザーのカレンダーから毎週特定のタスクを実行することです。ユーザーがアプリケーションを開かなくても時間をカウントしたいと思っています。私がインターネット上で見つけたものは、ユーザーがアプリを起動するたびにカレンダーをリセットします。カレンダー付きタイマー/スケジューラの使用
ありがとうございました。
私は思っています:タスクが最後に実行されたときに固執します。アプリの起動時に、1週間以上前にチェックしてください。そうであれば、すぐに実行してください。そうでない場合は、最後の1週間後に実行するタイマーを開始します。
前の実行時間の1週間後に次の実行時間を見つけるにはどうすればよいですか?最後の実行時間に使用するタイプによって異なりますが、java.time
タイプの多くはplus(1, ChronoUnit.WEEKS)
を受け入れます。また、便利のためにplusWeeks
メソッドもあります。
私はlocaldateを使っていましたが、うまく働いていました。 –
long nextExecutionTime(long currentTime)
という方法で現在の時間と次の実行時間の戻り時間を受け取る「スマート」カレンダーを作成し、dbの助けを借りて永続化させます。あなたのアプリの起動時に、このカレンダーをdbからフェッチして次の実行時間を取得してください。この時間に数えればこの時間にカウントし、このメソッドの助けを借りて次の実行時間を取得してください。
申し訳ありませんが、この質問は、Stack Overflow形式では広すぎます。ここでは、質問がいくつかの段落で答えることができなければなりません。多分あなたが持っているアイデアを分かち合うなら、誰かが彼らがうまくいくかどうか、あるいは改善の可能性についてコメントするかもしれません。 –
私は思っています:タスクが最後に実行されたときに持続します。アプリの起動時に、1週間以上前にチェックしてください。そうであれば、すぐに実行してください。そうでない場合は、最後の1週間後に実行するタイマーを開始します。 –
それは良いアイデアのように見えます...私はそれを試してみましょう... –