0
私はAlertDialogを開くボタンを持っています。その後、それがカウントダウンを開始し、テキストを更新し、ダイアログ内にある:Dialogでカウントダウンを行う方法と、ダイアログが再び開いたときにカウントダウンを復活させる方法
private void countDown(int cooldown) {
countDownTimer = new CountDownTimer(cooldown, COOLDOWN_TIME_STEP_MILLIS) { //sec , steps
public void onTick(long millisUntilFinished) {
isTimerActive = false;
if (mFingerprintText != null) {
updateDialogText("Awsome text count: " + millisUntilFinished/COOLDOWN_TIME_STEP_MILLIS + " segs", false);
}
}
public void onFinish() {
isTimerActive = false;
if (mFingerprintText != null) {
updateDialogText("Awsome text count finished", false);
}
}
}.start();
}
しかし、ユーザーがdialiogを閉じて再度開いた場合、私は渡された時間の間、カウントダウンを続けていきたいです。 13:00:00にカウントダウンを開始した場合(カウント1分)、ユーザーが13:00:15に閉じると、ユーザーが13:00:30などに再び開いた場合は、カウントを続けるので、この瞬間のカウンターはまだ30秒をカウントする必要があります...
私はいくつかの異なる方法を試しましたが、私はそれを達成していません。
private void showTimerDialog(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
View dialogView = LayoutInflater.from(context).inflate(R.layout.dialog_request_android_timer, null);
builder.setView(dialogView);
if (!isTimerActive) {
mTimerText = (TextView) dialogView.findViewById(R.id.dialog_timer_text);
}
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (mActive) {
deactivate();
}
}
});
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
mDialog.dismiss();
}
});
builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
mDialog.dismiss();
}
});
mDialog = builder.create();
mDialog.setCanceledOnTouchOutside(false);
mDialog.show();
}
ありがとうございます、ありがとう – Shudy