如何显示敬酒内计时器? [英] How to display toast inside timer?
问题描述
我要显示内部定时器敬酒消息,我用下面的code:
I want to display toast message inside timer and I used the following code :
timer.scheduleAtFixedRate( new TimerTask()
{
public void run()
{
try {
fun1();
} catch (Exception e) {e.printStackTrace(); }
}
}, 0,60000);
public void fun1()
{
//want to display toast
}
和我收到以下错误:
WARN / System.err的(593):java.lang.RuntimeException的:内螺纹无法创建处理程序,并没有叫尺蠖prepare()
WARN/System.err(593): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
WARN / System.err的(593):在android.os.Handler(Handler.java:121)
WARN/System.err(593): at android.os.Handler.(Handler.java:121)
WARN / System.err的(593):在android.widget.Toast(Toast.java:68)
WARN/System.err(593): at android.widget.Toast.(Toast.java:68)
WARN / System.err的(593):在android.widget.Toast.makeText(Toast.java:231)
WARN/System.err(593): at android.widget.Toast.makeText(Toast.java:231)
感谢。
推荐答案
您不能进行单独的线程中UI的更新,如定时器。您应该使用Handler对象的UI更新:
You can't make UI updates inside separate Thread, like Timer. You should use Handler object for UI update:
timer.scheduleAtFixedRate( new TimerTask() {
private Handler updateUI = new Handler(){
@Override
public void dispatchMessage(Message msg) {
super.dispatchMessage(msg);
fun1();
}
};
public void run() {
try {
updateUI.sendEmptyMessage(0);
} catch (Exception e) {e.printStackTrace(); }
}
}, 0,60000);
这篇关于如何显示敬酒内计时器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!