5

「MainActivity」というメインクラスがあり、アプリで数回起動しています。

private static CountDownTimer timer;
private static final long startTime = 15 * 1000;
private static final long interval = 1 * 1000;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    timer = new StageCountDownTimer(startTime, interval);

}

private class StageCountDownTimer extends CountDownTimer {
    public StageCountDownTimer(long startTime, long interval) {
        super(startTime, interval);
    }

    @Override
    public void onFinish() {
        //STARTTING NEW ACTIVITY 
    }

    @Override
    public void onTick(long millisUntilFinished) {
    }
}

カウントダウンが終了する前に、ユーザーがこのアクティビティを閉じて、このアクティビティに再び戻る必要がある場合があります。そして、新しいカウントダウンが開始されますが、古いonFinish()カウントダウンは前のカウントダウンが終了したときにコードを実行します。このコードを一度開始すると、すべてがうまく機能します。アクティビティを終了した後、このタイマーをキャンセル/破棄/破棄する方法は? 私は試してみましたがtimer.cancel()、何も起こりません。

編集

CountDownTimer タイマーをパブリックとして設定し、他のアクティビティで MainActivity.timer.cancel() を使用することで問題を解決したと思います

4

3 に答える 3

0

私はちょうど使用している他のアクティビティCountDownTimer timerとして設定することで問題を解決したと思いますpublicMainActivity.timer.cancel()

于 2013-09-15T18:48:05.253 に答える