gpt4 book ai didi

android - 如何在计时器内显示 toast ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:13 25 4
gpt4 key购买 nike

我想在计时器内显示 toast 消息,我使用了以下代码:

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: Can't create handler inside thread that has not called Looper.prepare()

WARN/System.err(593): at android.os.Handler.(Handler.java:121)

WARN/System.err(593): at android.widget.Toast.(Toast.java:68)

WARN/System.err(593): at android.widget.Toast.makeText(Toast.java:231)

谢谢。

最佳答案

您不能在单独的线程内进行 UI 更新,例如 Timer。您应该使用 Handler 对象进行 UI 更新:

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);

关于android - 如何在计时器内显示 toast ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5218801/

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