0

もっとうまく説明する方法がわかりません。私はこのタイマーを持っています。カウントが終了したら、別のクラス(ポップアップ)を呼び出し、その後、カウンターがある同じクラスの他の関数を呼び出す必要があります。

public class MyCount extends CountDownTimer {

        public MyCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }


        public void onFinish() {

            Intent i = new Intent(getApplicationContext(), PogresanOdgovor.class);
            i.putExtra("tacanOdgovor", tacanOdg);
            startActivity(i);
            mHandler.postDelayed(mLaunchTask,2200);

            brojacPogresnihOdgovora++;
        }

最初のパスの後、私のスコアは 1 ではなく 2、次に 6、14 です...この遅延メソッドは単に次の質問です。

Runnable mLaunchTask = new Runnable() {
        public void run() {
            nextQuestion();
            brojacVremena.start();
        }
     };

ユーザーの回答が間違っている場合、onFinish() のメソッドとまったく同じメソッドを呼び出し、正常に動作します。

MyCount brojacVremena = new MyCount(6000, 1000);

final OnClickListener clickListener = new OnClickListener() { public void onClick(View v) {

        Answer ans = (Answer) v.getTag();
        if (ans.isCorrect) {
            brojacVremena.cancel();
            brojacTacnihOdgovora = brojacTacnihOdgovora + 5;
            Intent i = new Intent("rs.androidaplikacijekvizopstekulture.TACANODGOVOR");
            startActivity(i);
            mHandler.postDelayed(mLaunchTask,1200);
        }
    else{
        brojacVremena.cancel();
        brojacPogresnihOdgovora++;
        Intent i = new Intent(getApplicationContext(), PogresanOdgovor.class);
        i.putExtra("tacanOdgovor", tacanOdg);
        startActivity(i);
        mHandler.postDelayed(mLaunchTask,2200);

    }
};
4

1 に答える 1

2

エラーが見つかりました。カウンターに2回電話しました。ここ:

nextQuestion(); 
brojacVremena.start();

まったく同じ nextQuestion メソッドで以下を実行します。

public void nextQuestion() {
brojacVremena.start();
.
.
.

私はそれがどのように起こったのかわかりません。

于 2013-03-10T18:17:39.117 に答える