android – 如何在计时器中显示吐司?

android – 如何在计时器中显示吐司?,第1张

概述我想在计时器中显示toast消息,我使用了以下代码: timer.scheduleAtFixedRate( new TimerTask(){ public void run(){ try { fun1(); } catch (Exception e) {e.printStackTrace(); } } 我想在计时器中显示toast消息,我使用了以下代码:
timer.scheduleAtFixedrate( new TimerTask(){       public voID run(){    try {          fun1();        } catch (Exception e) {e.printstacktrace(); }                }   },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)

谢谢.

解决方法 您不能在单独的Thread内部进行UI更新,例如Timer.您应该使用Handler对象进行UI更新:
timer.scheduleAtFixedrate( new TimerTask() {private Handler updateUI = new Handler(){@OverrIDepublic voID dispatchMessage(Message msg) {    super.dispatchMessage(msg);    fun1();}};public voID run() { try {updateUI.sendEmptyMessage(0);} catch (Exception e) {e.printstacktrace(); }}},60000);
总结

以上是内存溢出为你收集整理的android – 如何在计时器中显示吐司?全部内容,希望文章能够帮你解决android – 如何在计时器中显示吐司?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1149546.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存