android toast防重_如何解决android Toast重复显示
Toast是一种简易的消息提示框,它无法获取焦点,按设置的时间来显示完以后会自动消失,一般用于帮助或提示。
先给大家分享下我的解决思路:
不用计算Toast的时间之类的,就是定义一个全局的成员变量Toast, 这个Toast不为null的时候才去make,否则直接setText.为了按返回键后立即使Toast不再显示,重写父类Activity的onBackPressed()方法里面去cancel你的Toast即可.
代码:
private Toast mToast;
public void showToast(String text) {
if(mToast == null) {
mToast = Toast.makeText(TestActivity.this, text, Toast.LENGTH_SHORT);
} else {
mToast.setText(text);
mToast.setDuration(Toast.LENGTH_SHORT);
}
mToast.show();
}
public void cancelToast() {
if (mToast != null) {
mToast.cancel();
}
}
public void onBackPressed() {
cancelToast();
super.onBackPressed();
}
下面介绍下解决Android Toast重复显示等待时间过长的问题
当触发点击事件显示toast信息时,如果设置了时间长短类型为LENGTH_LONG,虽然回到后台运行,但是依然会显示toast信息,尤其是当连续点击时,toast就会排队等待直到所有toast显示完毕,这种界面的用户体验是很差的。
→ 1 toast 2 toast 3 toast 4 toast 5 toast →
为了避免这种问题,可以再toast信息显示的地方加个判断,方法如下:
private Context mcontext;
private Toast mtoast;
if(mtoast!=null)
{
mtoast.setText(R.string.neterror);
}
else
{
/*
* 第一个参数:当前的上下文环境,用this或getApplicationContext()表示。
* 第二个参数:显示的字符串,用R.string表示。
* 第三个参数:显示的时间长短。用LENGTH_LONG(长)或LENGTH_SHORT(短)表示,也可以用毫秒。
*/
mtoast=Toast.makeText(mcontext,R.string.neterror, Toast.LENGTH_SHORT);
}
mtoast.show(); //显示toast信息
另外,还可以通过设置Toast的其他属性来设计自己风格的Toast消息框。
时间: 2016-01-05
android toast防重_如何解决android Toast重复显示相关推荐
- sqlserver leftjoin出现重复数据_数据库存数据时,逻辑上防重了为啥还会出现重复记录?...
在很多异常情况下,比如高并发.网络糟糕的时候,数据库里偶尔会出现重复的记录. 假如现在有一张书籍表,结构类似这样 +----+--------------+ | id | name | +----+- ...
- android 启动白屏_为什么说Android 架构的未来是 MVVM?
据<第45次中国互联网络发展状况统计报告>,2019年市场上监测到的APP数量比2018年减少85万款- 这两年,很多朋友都会有这样的疑惑: "现在Android的坑还值不值得入 ...
- Android手机内存图片读取,有效解决Android加载大图片内存溢出的问题
今天在交流群里,有人问我他经常遇到加载图片时内存溢出的问题,遇到的情况还是在自己的测试机或者手机里没有问题,做好了, 到了客户手机里就内存溢出了.其实有时候不同的手机和不同的系统对内存的要求不一样,尤 ...
- android studio button位置_免费的Android开发环境
Android Studio for mac是一个全面的Android开发环境,Android Studio帮助您设计,构建,测试和调试Android应用程序,利用Android Studio所有特色 ...
- android studio光标变成黑块,解决Android Studio 代码无提示无颜色区分问题
解决Android Studio 代码无提示无颜色区分问题 一.问题 ①java代码没有颜色区分,统一黑色 ②代码不会联想提示,原来打前几个字母便会联想到后面的内容 二.解决 打开File,将Powe ...
- java 防重_如何做一个防重设计
前言 在业务设计中防重设计是一个关键点,以接口设计为例,防重就是防止接口被多次调用而产生脏数据,比如支付订单出现重复支付,所以说防重至关重要,在如何防重之前我们首先看一下是如何出现重复请求的. 何时出 ...
- android 创建模拟器打不开,解决Android模拟器打不开的问题!...
解决Android模拟器打不开的问题!... 昨天,我搭建Android开发环境,启动AVD时,出现了以下错误提示: PANIC: Could not open: D:\Android\android ...
- android打开app白色页面,完美解决Android App启动页有白屏闪过的问题
应用启动的时候有短暂的白屏,如图: 可以通过设置theme的方式来解决 @color/colorPrimary @color/colorPrimaryDark @color/colorAccent t ...
- android 控件 堆叠_每次在Android上正确地向后堆叠
android 控件 堆叠 When navigating in a mobile app, the screens opened after one another form a stack, th ...
- android导航栏自动弹出,解决android 显示内容被底部导航栏遮挡的问题
描述: 由于产品需求,要求含有EditText的界面全屏显示,最好的解决方式是使用AndroidBug5497Workaround.assistActivity(this) 的方式来解决,但是华为和魅 ...
最新文章
- Bokeh中图形与组件的布局简介 | Bokeh 小册子
- Pytorch(一) --线性模型
- rank 开窗函数_over 开窗函数的的理解
- 基于javaspringboot+mybatis汽车信息管理系统设计和实现
- git提示(拷贝密钥问题)“Load key /home/devid/.ssh/id_rsa: bad permissions”
- 虚拟机使用ceph-deploy安装ceph
- 【转】AfxMessageBox、MessageBox、::MessageBox的区别
- ubuntu16下安装mongodb 3.6
- 查找出/tmp目录下面修改时间是7天以前,大小在50k到2M之间,并以.log结尾的文件...
- 【手写数字识别】基于matlab Fisher分类手写数字识别 【含Matlab源码 505期】
- WinHttp c++ 介绍及应用
- ubuntu16.04 部署dzzoffice+onlyoffice 局域网实现word、excel文档协同编辑
- Spring Boot实战分页查询附近的人: Redis+GeoHash+Lua
- Ubuntu 12.10下用Pidgin(pidgin-lwqq)登录QQ
- Jav安全框架Shiro学习总结(1)
- Shiro解决多个二级域名的单点登录问题
- 开发项目中,360浏览器遇到的一个坑
- MySql中 case then when end用法
- 进击的局座:悄悄话读后感
- ESP32蓝牙Bluetooth Controller API介绍
热门文章
- 非监督分类ecognition_ENVI遥感影像土地利用分类说明
- html位置插入透明动画文字,鼠标放上去,图片上方动态显示半透明说明文字(源码)...
- 文本特征提取:词袋模型/词集模型,TF-IDF
- 安信可nbiot模块_安信可无线模组
- js实现网页中简体与繁体互转
- Base16,Base32,Base64编码详细学习
- Java NIO、BIO介绍
- sql 主键 外键
- NPDP考试地点在哪?
- goredis文档中文翻译---Getting started with Golang Redis