0

私はこのコードを持っています:

import android.app.Activity;     
import android.os.Bundle;     
import android.os.CountDownTimer;     
import android.widget.TextView;       

 public class MActivity extends Activity {      

 TextView start;    

 public void onCreate(Bundle savedInstanceState) {    

      super.onCreate(savedInstanceState);    
      setContentView(R.layout.main);    

      start = (TextView)findViewById(R.id.start_me);    

        CountDownTimer aCounter = new CountDownTimer(100000 , 1000) {    
              public void onTick(long millisUntilFinished) {    
                  start.setText("Remaining: " + millisUntilFinished / 1000);    
              }    

                public void onFinish() {    
                    start.setText("Finished");     
                }     
             };      
           aCounter.start();     
   }     
 }    

しかし、私がそれを実行すると、エラーを閉じるために強制的にクラッシュします。どこが問題になるのか、私を助けてくれませんか?

4

1 に答える 1

2

CountDownTimerUIスレッドで実行されていないため、UIに属するものを変更しようとすると、致命的な例外がスローされます。

CountDownTimerはOnTickメソッド内のUIにどのようにアクセスしていますか?

編集:

@blackbeltのコメンターは正しかったようです。私は先に進んでAndroidプロジェクトを作成しましたが、コードは正常に機能します(Android2.3.3)。

多分あなたは私たちに例外を与えたいと思いますか?あなたのlogcatからの抜粋のように?

于 2012-04-04T15:18:47.780 に答える