如何在Android应用程序中正确实现android.os.Handler类而不是Timer?

时间:2011-04-30 17:55:20

标签: java android timer handler

所以我想在我的Anroid程序中实现Timer,我发现更好的方法就是使用Handler类。

首先,我决定使用Handler编写最简单的程序 - 文本在1秒后设置。我是Android的初学者,所以我在网上浏览了一些特别是那个http://developer.android.com/resources/articles/timed-ui-updates.html的教程,但我的应用程序仍显示错误(“应用程序mTimer停止”)。

所以有人能指出我到底错在哪里吗?我很感激,这是代码:


public class mTimer extends Activity {

    TextView tv;
    Button button1,button2;
    Handler mHandler;

    private Runnable myTask = new Runnable() {
           public void run() {

               tv.setText("text");

           }
        };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button1=(Button)findViewById(R.id.button1);
        tv=(TextView)findViewById(R.id.textView1);

 button1.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                mHandler.postDelayed(myTask, 100);
            }
        });


    }
}

1 个答案:

答案 0 :(得分:2)

您应该使用Handler之类的代码初始化onCreate方法中的mHandler = new Handler();

注意,myTask任务将在UI线程上运行,因为你的处理程序是在那里声明的

Handler.postDelayed 的API文档:

  

runnable将在线程上运行   这个处理程序附加到哪个。