重复弹Toast的解决方案

自定义Toast及解决重复出现Toast的问题 立即下载

测试提单子了, 说重复的错误操作导致不停的弹出提示框,  返回之后还是照样弹.!

android是这样的机制, 我跟了下Toast的源代码.  Toast是用INotificationManager去做的.


修改源码工作量太大,而且我们是基于SDK做的APK, 所以我决定去找下根源.

原因是:  同事每回都用Toast.makeToast.  然而这个方法中每次都会去new 一个Toast对象,这些Toast对象就会放到 INotificationManager的enqueue队列里面去顺序执行.

如果想在按返回键时立即不弹Toast, 那么方法只有一个, 就是定义一个全局的成员变量Toast, 这个Toast不为null的时候才去make,否则直接setText.

最后重写父类Activity的onBackPressed()方法里面去cancel你的Toast即可

大致代码如下:

private Toast mToast;

public void showToast(String text) {
    if(mToast == null) {
        mToast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
    } else {
        toast.setText(text);		toast.setDuration(Toast.LENGTH_SHORT);
    }
    mToast.show();
}

public void cancelToast() {
		if (mToast != null) {
			mToast.cancel();
		}
	}

public void onBackPressed() {
		cancelToast();
		super.onBackPressed();
	}


自定义Toast工具类ToastUtil防止多次点击时Toast不消失的方法 下面小编就为大家带来一篇自定义Toast工具类ToastUtil防止多次点击时Toast不消失的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 立即下载

相关推荐

保姆级教程:用MATLAB复现格拉斯哥大学FMCW雷达数据集多普勒谱(附完整代码与避坑指南)

本文提供了一份详细的MATLAB教程,指导如何复现格拉斯哥大学FMCW雷达数据集的多普勒谱分析。从环境准备、数据获取到距离压缩、MTI滤波、时频分析(STFT)以及结果后处理,涵盖了完整流程,并附有优化代码和避坑指南,特别适合雷达信号处理研究者和工程师。

weixin_28720767的博客 116

Toast弹两次

遇到一个奇葩问题 Toast.makeText(mContext,“我是吐司”,Toast.LENGTH_SHORT).show(); 代码执行了一次,屏幕上Toast显示出来两次的效果 解决方案 mHandler.postDelayed(new Runnable() { @Override public void run() {

OldApple_MrZ的博客 923

深信服防火墙路由模式开局部署-手把手教学(小白篇)

手把手教学,拿到深信服的防火墙路由模式该如何开局?

m0_64423407的博客 2万+

element-ui重置message,实现并发请求报错的时候,多次弹出消息提示的问题

element-ui重置message,实现并发请求报错的时候,多次弹出消息提示的问题

NY1007的博客 226

UOS的ARM机编译QT5.14.2记录

我需要的qt版本是Qt5.14.2,所以选择编译Qt5.14.2源码;几个月前尝试了编译一次,当时编译过程中出现了报错,当时时间很紧最后安装的默认版本来使用,最近有时间重新进行了一次编译,历经3个星期(4G的内存)终于解决了各种坑,编译成功了,现在将编译过程中遇见的一些坑记录一下,方便日后能记得这一次可恶的编译过程,如有描述欠缺的地方,还希望各位大佬给点意见指导指导🙏。

NiF693zzz的博客 1617

利用kettle进行数据库数据比对

Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。本人用的版本是6.1。 之前用kettle这个开源的ETL工具是用来做数据抽取的,这次测试有个需求,是做数据库数据的比对。验证源表到目标表的逻辑正确,从而利用源表自己写SQL逻辑,生成的结果和目标表去比对。这次想到了利用kettle的数据比较功能,来做这些数据校验。 ...

多米诺DU的专栏 1万+

Vue Axios响应拦截器Message弹框多次出现解决方案

功能来确保错误通知延迟显示。它检查错误消息是否与上一个错误相同以及时间间隔是否较短(例如,2 秒)。如果两个条件都成立,则不会显示错误通知。这样,可以避免同时出现多个错误消息。设置一个变量用于记录上一次错误信息和时间戳。使用去抖函数Debounce。使用 Lodash 的。

qq_44033191的博客 1496

基于OpenCV的围棋终局识别与胜负判定系统实现

计算机视觉是人工智能领域的关键技术,它使计算机能够从数字图像或视频中获取、处理和分析信息。其核心原理在于通过图像处理算法提取特征,并基于这些特征进行识别、分类和测量。在工程实践中,计算机视觉技术为自动化、智能化应用提供了强大支持,广泛应用于工业检测、自动驾驶、医疗影像分析等领域。本文聚焦于一个具体的应用场景:利用OpenCV库实现围棋终局识别。通过图像预处理、棋盘检测与透视校正、交叉点定位等步骤,结合围棋规则逻辑,构建了一套从棋盘图像自动判定胜负的解决方案。该方案涉及自适应二值化、霍夫变换、连通域分析等关键

weixin_29100927的博客 279

前端面试题-请求失败会弹出一个 toast , 如何保证批量请求失败, 只弹出一个 toast

请求失败会弹出一个 toast , 如何保证批量请求失败, 只弹出一个 toast

m0_62300955的博客 804

Ultralytics YOLO模块自定义与替换实战技巧

本文详细介绍了在Ultralytics YOLO框架中进行模块自定义与替换的实战技巧。通过从零开始添加全新模块(如注意力模块)到进阶替换现有模块(如增强版卷积),并涵盖模块注册、YAML配置、模型融合及ONNX导出等关键步骤,帮助开发者深度定制YOLO模型,以应对复杂检测任务与部署需求。

numpy6sculptor的博客 930

Openclaw错误排查及解决方案之:Something went wrong while processing your request. Please try again.

Openclaw错误排查及解决方案之:Something went wrong while processing your request. Please try again.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 3787

Android 程序退出 Toast还一直显示 解决方案

今天,改了个bug:点击两次返回程序退出。 如大家所想,第一次点击用Toast提示,如果在两秒内再次点击那么程序退出。 在我们平时写App的时候,习惯用Application的上下文对象,但是可能大家不是很清楚这个上下文对象到底有什么用,当然大家可以目前认为是一个依附的对象。 接下来说说问题吧: App退出之后,我的Toast还在显示,一直消失不了。 先说说我的操作吧: ...

qq_37990175的博客 4776

C# WinForms 多语种切换实现:打造国际化应用程序

合理实现多语种切换功能可以显著提升应用程序的国际化水平。模块化设计:将本地化逻辑模块化,便于管理和维护。异常处理:始终捕获和处理可能的异常,确保程序的健壮性。资源管理:合理管理资源文件,避免重复和遗漏。测试:在不同语言环境下进行全面测试,确保所有字符串都能正确显示。文档和注释:为关键代码添加详细的文档和注释,便于后续维护。

墨夶的博客 1691

重复弹出Toast 解决方案

在开发中,有可能提示会很快,Android系统的Toast的提示是队列的形式,如果操作很快,同时有大量的消息传递,会导致出现在操作结束之后好久才会弹出Toast显示你的消息,在这里,我采用了单例模式封装了一个Toast,再代码中直接使用就可以解决掉这个问题了 public class MyToast { private Toast mToast; ...

weixin_30387339的博客 164

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[Android] 多次按钮点击Toast重复显示解决方案

【背景介绍】  最近遇到这样一个BUG,页面中有个按钮,点击按钮后弹出toast提示。但是多次点击此按键时,Toast会一直显示,点击的次数越多,显示的时间越长(其实就是多次点击按键时,Toast顺序响应,使得总的展示时间变长,给用户不友好的展示)。   多次点击后Toast一直显示的效果:   【解决方案】public class MainActivity extends AppCompatA

csdn_lexli的博客 3683

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android Toast 防止重复弹出

如果有这样一个场景,用户不停的狂点某一个按钮,而这时这个按钮刚好就会触发一个Toast弹框,是不是就会出现,Toast不消失的现象。如果这个时候你是这样的现象,那么你的Toast一定是这样写的 Toast.makeText(CrashApplication.getApplication(),text,duration).show(); 这样写就会造成Toast重复弹框的问题。 现在有这样一个工具类,可以防止Toast重复弹框,直接上代码 importandroid.os.Handler;...

wxj280306451的博客 1340

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android Toast工具类 解决Toast重复显示,Toast一直显示,在线程中可用

Toast工具类 解决Toast重复显示,Toast一直显示,在线程中可用 希望 TkToastUtil 能帮助你 import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.TextUti

指尖上的人生 1009

前端批量请求失败 Toast 重复弹窗怎么解决?

解决前端批量请求失败 Toast 重复弹窗的问题,关键在于对 Toast 的展示进行合理的控制和管理。通过使用标志位、合并失败信息、队列管理等方法,我们可以有效地避免重复弹窗,提升用户体验。在实际项目中,我们还可以根据具体需求,对这些方案进行优化和拓展。例如,结合不同的 Toast 组件特性,实现更灵活的展示效果;或者在合并失败信息时,对错误类型进行分类处理,让用户获取更准确的信息。​希望以上内容能够帮助大家在面试中从容应对该问题,也能在实际开发中更好地解决类似的前端交互问题。

分享一些破烂儿 778

解决Toast重复显示的问题

前述: 在很早以前接触Android的时候吧! 就遇到过此类Toast消息重复显示的问题,自定义Toast,显示的位置等待,由于事后没有记录下来,导致今日忘记了,于是百度了下,看了下 知道怎么写了,但是感觉不是很好,于是乎鼠标不知道点哪里去了,竟然找到以前程序的代码,接下来的工作 当然是copy了!       在此记录在这里,以便日后忘记,直接写在这里!也希望能帮助到大家,直接copy

chonbj的专栏 3839

Toast 在9.0上的重复特性的更改(也是重复显示的bug)

Toast是日常android开发经常会用的类,用来显示一些Toast信息。经常会遇到需要重复显示需求。为了防止Toast不停的弹出(以前是toast以队列形式依次显示,会很烦),我们通常会使用如下代码来覆盖上一个的Toast,代码如下: /** * 显示不重复Toast消息 */ @SuppressLint("ShowToast") public...

yuqi1110的专栏 1439

Toast点击多次一直弹问题

有些地方需要给用户一些提示,个人觉得Toast是最简单,最方便的提示方法,但是有时用户连续点击多次会出现一直弹,导致体验不好,查资料之后写一个ToastUtil public class ToastUtil { private static Toast toast; pu...

christ12345的博客 301

Toast多次点击只弹一次提示信息

Android中Toast多次点击只弹一次提示信息

Dianliang的博客 1655
上一篇: 自定义Android TextView超链接处理
下一篇: Tomcat集群和Session共享的配置方法
izard999
博客等级 码龄18年 375粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值