4

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

(new CountDownTimer(10000,1000){

    @Override
    public void onFinish() {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTick(long millisUntilFinished) {
        TextView tv = (TextView)findViewById(R.id.tvLCD);
        tv.setText(Long.toString(millisUntilFinished));
    }           
}).start();
4

3 に答える 3

8

@Sergey Glotov の回答にあるリンク ( GreCode - Handler ) から、カウントダウン タイマーが別のスレッドをまったく使用していないことは明らかです。これが、すべての UI 要素にアクセスできる理由です。彼らがハンドラーを使用した理由はわかりません。しかし、それは新しいスレッドを生成しません。UI スレッド自体で実行されます。

于 2012-06-25T11:26:15.537 に答える
2

Activity.runOnUiTread()View.post()View.postDelayed()または 経由でスレッドから UI にアクセスできますHandler。この目的でCountDownTimer使用します ( source )。Handler

これらすべての方法の使用方法を理解するには、この記事をお読みください。

于 2011-06-15T08:35:07.967 に答える