ここでは小さな問題です。私はうまく動作するアンドロイドのカウントダウンタイマーがありますが、問題はカウントダウンタイマーがユーザー/タイムゾーンの間で異なることです。これはつまり、タイムゾーンごとに、自分のタイムゾーンを基準にして、以前または後で終了する可能性のある別のカウントダウンが表示されることです。これは欲しくないので、すべてのカウントダウンがこの映画で同時に終了するようにしてくださいリリース。GMT/UTCに基づくAndroidのカウントダウンで、ユーザーのタイムゾーンではありません
マイコード: 注:いくつかのコードを簡潔にするため省略してのため、私は、GMT/UTCのタイマをカウントダウンすることができますどのようにコード
// the current date and time
Calendar today = Calendar.getInstance();
// release.date is in milliseconds at 12am and in GMT, example: GMT: Friday, September 29, 2017 12:00:00 AM
long currentTimeMillis = today.getTimeInMillis();
long expiryTime = releaseDate.date - currentTimeMillis;
holder.mTextCountdown.setText("");
if (holder.timer != null) {
// Cancel if not null to stop flickering
holder.timer.cancel();
}
holder.timer = new CountDownTimer(expiryTime, 500) {
public void onTick(long millisUntilFinished) {
long seconds = millisUntilFinished/1000; // reminder: 1 sec = 1000 millis
long minutes = seconds/60;
long hours = minutes/60;
long days = hours/24;
String dayFormat = "days";
String hoursFormat = "hours";
if (days == 1) {
dayFormat = "day";
}
if (hours == 1) {
hoursFormat = "hour";
}
String time = days + " " + dayFormat + " : " + hours % 24 + " " + hoursFormat +" : " + minutes % 60 + " : " + seconds % 60;
holder.mTextCountdown.setText(time);
}
// Finished: counted down to 0
public void onFinish() {
holder.mTextCountdown.setText("Now out!");
}
}.start();
のいくつかの説明のために以下のコメントをチェックしてくださいれますすべてのユーザーが同時に終了することを確認しますか?
はありがとう
すべての回では、GMTですでに混乱して申し訳ありませんし、それが適切なリリース日を印刷しないので、実際にUIの出力のために私は、代わりに、ユーザーのタイムゾーンをGMTに変換します。 –