時計の分が変わるまで投稿を遅らせたい。現在私はこれを使用しています
handler.postDelayed(drawRunner, 60000);
しかし、この遅延は現在の時刻から60秒後になります。私がやりたいのは、時計の分が変わるまで投稿を遅らせることです。
たとえば、私の電話4:15:29
の時間は、その時間まで遅らせたいよりも4:16:00
、次の時間までと言うことができます4:17:00
。
とにかくこれを行うことはありますか?
次の方法で現在の時刻にアクセスできます。
long time = System.currentTimeMillis();
それができたら、次の方法でその2番目の部分を取得できます。
int seconds = new Date(time).getSeconds();
次に、それを60から差し引いて、スリープ時間を取得できます。
int sleepSecs = 60 - seconds;
次に、それをスリープ時間に設定しますhandler.postDelayed()
handler.postDelayed(drawRunner, sleepSecs*1000);
これを初めて使用した後は、一定の60000ミリ秒のスリープ時間を使用できます。
getSeconds()は2番目の値として60または61を返す可能性があることに注意してください!ドキュメンテーション
はい、この Timer クラスを使用して定期的なタスクをスケジュールすることができます。このようにして、必要に応じて任意の期間にクロック時間を変更できます。