マークDenom:
私の目標は、タイマーが起動ボタンを有効にしたら、ボタンをクリックして、それを無効にして、タイマーを開始することですので。単純な右?あなたはこのような何かをするだろう。
button1.onClick {
button1.setEnabled(false);
new CountDownTimer(60000, 1000) { //Set Timer for 5 seconds
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
button1.setEnabled(true);
}
}.start()
}
しかし...タイマーボタンを実行している間、ユーザーがアプリを閉じた場合は、タイマーを再起動し、再び有効になります。その代わりに、ユーザはアプリだけで閉じることができ、60秒待つと、10秒以内にそれを開くことの。
だから私の質問は、どのように私は60秒のためのボタンを無効にした場合でも、無効なユーザーが閉じるそれを維持し、60秒が経過するまでのアプリを開きますか?
GhostCat敬礼モニカC.:
あなたはする必要が存続アプリがオフになっている場合でも、それを維持し、データストア内にその情報を。
それを行う1つの方法は、使用することですhttps://developer.android.com/training/data-storage/shared-preferencesを
あなたは、タイマーを起動するときにタイムスタンプを取得、またはタイマーのための「終了時間」を計算することがあります。あなたの好みは、このようなタイムスタンプが含まれている場合は、最初のチェック、あなたはその情報を保存し、アプリが起動するたびに。そしてもしそうなら、あなたはその「タイミング」ウィンドウに残っているかどうかを確認してください。
THRキー物事を覚えている:あなたはタイマーがアップしている時に永続化情報を削除する必要があり、かつ:誰かが平均時間でシステムクロックを変更した場合、あなたも、問題を得ました。それに対処することも可能ですが、より多くの努力が必要です。