2017-06-16 7 views
-2

[In Java]ねえ、私はウェブ上でたくさんのものを探しましたが、見つけた唯一のものは私にとってはうまくいきません。私が必要とするのは、ユーザーのカレンダーから毎週特定のタスクを実行することです。ユーザーがアプリケーションを開かなくても時間をカウントしたいと思っています。私がインターネット上で見つけたものは、ユーザーがアプリを起動するたびにカレンダーをリセットします。カレンダー付きタイマー/スケジューラの使用

ありがとうございました。

+0

申し訳ありませんが、この質問は、Stack Overflow形式では広すぎます。ここでは、質問がいくつかの段落で答えることができなければなりません。多分あなたが持っているアイデアを分かち合うなら、誰かが彼らがうまくいくかどうか、あるいは改善の可能性についてコメントするかもしれません。 –

+0

私は思っています:タスクが最後に実行されたときに持続します。アプリの起動時に、1週間以上前にチェックしてください。そうであれば、すぐに実行してください。そうでない場合は、最後の1週間後に実行するタイマーを開始します。 –

+0

それは良いアイデアのように見えます...私はそれを試してみましょう... –

答えて

0

私は思っています:タスクが最後に実行されたときに固執します。アプリの起動時に、1週間以上前にチェックしてください。そうであれば、すぐに実行してください。そうでない場合は、最後の1週間後に実行するタイマーを開始します。

前の実行時間の1週間後に次の実行時間を見つけるにはどうすればよいですか?最後の実行時間に使用するタイプによって異なりますが、java.timeタイプの多くはplus(1, ChronoUnit.WEEKS)を受け入れます。また、便利のためにplusWeeksメソッドもあります。

+1

私はlocaldateを使っていましたが、うまく働いていました。 –

0

long nextExecutionTime(long currentTime)という方法で現在の時間と次の実行時間の戻り時間を受け取る「スマート」カレンダーを作成し、dbの助けを借りて永続化させます。あなたのアプリの起動時に、このカレンダーをdbからフェッチして次の実行時間を取得してください。この時間に数えればこの時間にカウントし、このメソッドの助けを借りて次の実行時間を取得してください。

関連する問題