Toast连续出现多次的问题

qq_33248651 2016-01-02 05:57:16
从网上找的方法如下
public class CustomToast {
private static Toast mToast;
private static Handler mHandler = new Handler();
private static Runnable r = new Runnable() {
public void run() {
mToast.cancel();
mToast = null;
}
};

public static void showToast(Context mContext, String text, int duration) {
mHandler.removeCallbacks(r);
if (mToast != null){
mToast.setText(text);

} else{
mToast = Toast.makeText(mContext, text, duration);
}
mHandler.postDelayed(r, duration);
mToast.show();
}

public static void showToast(Context mContext, int resId, int duration) {
showToast(mContext, mContext.getString(resId), duration);
}
}
刚学android 对线程不熟 这个方法点击后 toast并没有出现 什么原因呢 是不是因为线程在run的时候不能执行.removeCallbacks()方法?求指点
...全文
405 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
MFCandVC 2016-06-28
  • 打赏
  • 举报
回复
mHandler.postDelayed(r, duration); 改成 if(duration == Toast.LENGTH_LONG) { mHandler.postDelayed(r,3500); }else if(duration == Toast.LENGTH_SHORT) { mHandler.postDelayed(r,2000); }
jklwan 2016-01-05
  • 打赏
  • 举报
回复
引用 6 楼 qq_33248651 的回复:
很普通的一个调用 CustomToast.showToast(mContext, R.string.soft_update_no, Toast.LENGTH_SHORT); 和5楼说的 去掉这句mHandler.postDelayed(r, duration); 就可以了 但是不太懂 为什么
系统的Toast会自动消失不用你去手动去让他消失。对于cancel()方法,当Toast没消失的时候你调用会消失,而当Toast已经消失你调用那么Toast不会再显示出来了。
qq_33248651 2016-01-04
  • 打赏
  • 举报
回复
引用 1 楼 a87b01c14 的回复:
这个类没问题,你不能显示toast? 没报错?
只有第一次点击很快的展现又消失 后面再点什么反应都没有 也没有报错
qq_33248651 2016-01-04
  • 打赏
  • 举报
回复
引用 3 楼 a87b01c14 的回复:
你怎么调用的,贴代码看看
很普通的一个调用 CustomToast.showToast(mContext, R.string.soft_update_no, Toast.LENGTH_SHORT); 和5楼说的 去掉这句mHandler.postDelayed(r, duration); 就可以了 但是不太懂 为什么
lgxing 2016-01-04
  • 打赏
  • 举报
回复
这一句不需要mHandler.postDelayed(r, duration);
Mr_Fingerling 2016-01-04
  • 打赏
  • 举报
回复
你把这句mHandler.removeCallbacks(r);去掉试试,感觉不需要这句,因为你的任务并不是无限循环,执行完mToast.cancel(); mToast = null;这两句,就没了。
sanxiaochengyu 2016-01-04
  • 打赏
  • 举报
回复
引用 2 楼 qq_33248651 的回复:
[quote=引用 1 楼 a87b01c14 的回复:] 这个类没问题,你不能显示toast? 没报错?
只有第一次点击很快的展现又消失 后面再点什么反应都没有 也没有报错[/quote] 你怎么调用的,贴代码看看
sanxiaochengyu 2016-01-02
  • 打赏
  • 举报
回复
这个类没问题,你不能显示toast? 没报错?

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧