gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 08:18:53 24 4
gpt4 key购买 nike

所以我想在我的 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);
}
});


}
}

最佳答案

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

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

Handler.postDelayed的 API 文档:

The runnable will be run on the thread to which this handler is attached.

关于java - 如何在Android应用程序中正确实现android.os.Handler类而不是Timer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5843611/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com