Toast在关闭应用后还显示的解决办法

1.我们在用Toast的用法就是:Toast.makeText(Context,CharSequence , Duration).show()。但有的时候如果你在一次操作当中多次点击一个view的时候去显示Toast,可能在你关闭

应用后Toast任然会继续显示,这个小瑕疵很是讨厌。下面就说一下解决办法(用到activity的生命周期):

就是在要用Toast的Activity中添加两个函数:

函数一:

 1     // 对toast进行一个简单的封装
 2     public void toastShow(CharSequence message) {
 3         if (null == mToast) {
 4             mToast = Toast.makeText(MainActivity.this, message,
 5                     Toast.LENGTH_SHORT);
 6             mToast.setGravity(Gravity.CENTER, 0, 0);
 7         } else {
 8             mToast.setText(message);
 9         }
10
11         mToast.show();
12
13     }

函数二:

1 //取消Toast
2     public void toastStop() {
3         if (null != mToast) {
4             mToast.cancel();
5
6         }
7
8     }

然后再Activity的OnPause()中调用toastStop()方法即可去掉Toast.

整个Activity示例:

public class MainActivity extends Activity {

    private Button btn;
    private Toast mToast;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
        btn.setOnClickListener(new Button.OnClickListener() {

            @Override
            public void onClick(View v) {
                toastShow("toast");
            }
        });

    }

    // 对toast进行一个简单的封装
    public void toastShow(CharSequence message) {
        if (null == mToast) {
            mToast = Toast.makeText(MainActivity.this, message,
                    Toast.LENGTH_SHORT);
            mToast.setGravity(Gravity.CENTER, 0, 0);
        } else {
            mToast.setText(message);
        }

        mToast.show();

    }
    //取消Toast
    public void toastStop() {
        if (null != mToast) {
            mToast.cancel();

        }

    }

    @Override
    protected void onPause() {
        System.out.println("onPause() ");
        toastStop();
        super.onPause();

    }

}

xml文件哪些就没必要贴出来了。

Toast在关闭应用后还显示的解决办法

时间: 2024-10-01 02:34:49

Toast在关闭应用后还显示的解决办法的相关文章

tomcat关闭后线程依然运行解决办法

tomcat关闭后线程依然运行解决办法,设置线程为守护线程 守护线程与非守护线程 最近在看多线程的Timer章节,发现运用到了守护线程,感觉Java的基础知识还是需要补充. Java分为两种线程:用户线程和守护线程 所谓守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分.因 此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程.反过来说,只要任何非守护线程还在运行,程序就不会终止. 守

【Windows10】运行软件后,窗口不显示的解决办法

摘要: Windows10偶尔出现运行软件后,窗口不显示(但是已经运行,任务栏有图标),或者运行中突然出现只剩下右上角的"最小化.最大化和关闭键"的小窗口. 1. 后者可以先最大化,然后拖动整个窗口,调整大小解决. 2. 前者打开软件窗口不显示的解决办法: 鼠标放在任务栏,出现该程序的预览窗口,然后左键单击,再按Alt+空格,会在桌面左上角显示还原.移动.最小化.最大化.关闭等的菜单列表窗口,且最小化.最大化.关闭是可选状态. 然后点击最大化,然后操作同上,拖动即可. 参考 1.WIN

关于网页中图片为中文名无法显示的解决办法

转载:http://lofei117.iteye.com/blog/1074182 网页中很多时候要用到图片,通过img标签或者滤镜来显示在页面上.而当文件名为中文名时会遇到图片无法正确加载,导致无法显示. 解决办法如下: 1:改变服务器的配置,使服务器支持utf-8来显示图片.这个经过测试是有效的,但是有一点是服务器配置修改了以后,再使用request来获取参数时,中文乱码的问题.通过System.out.print来打印出来的参数是正确的,但是赋值给String对象后却不是正确的值,再通过S

UIWebView长按弹出菜单显示英文解决办法

UIWebView加载网页后,长按弹出菜单,显示如下英文菜单样式: 在Info.plist中添加CFBundleLocalizations字段,并增加zh_CN元素,即可将上述菜单显示为中文. UIWebView长按弹出菜单显示英文解决办法

PNG不显示的解决办法

安装完Fireworks CS4后,PNG就不显示了,捣腾了大半天,原来是C盘的pngfilt.dll的IE里面c:\windows\system32\里面的不一样,可能是安装Fireworks CS4的原因.(前端资源分享)复制IE里面的pngfilt.dll到c:\windows\system32\替换原来的,然后注册此DLL就可以了: regsvr32 c:\windows\system32\pngfilt.dll PNG不显示的解决办法

Magento 切换成中文后没有数据信息解决办法

一款基于Google Closure compiler压缩Js文件插件. 快捷键: Ctrl+Alt+M            当前文件内压缩Js代码(不推荐) Ctrl+Alt+Shift+M   压缩Js并生成压缩文件 *.min.js 安装成功重启,如果报错,在配置里改一个参数,"compiler": "uglify_js", { // the closure compiler adds new lines every 500 characters // fo

层不能跨框架(包括TEXTAREA)显示的解决办法

这个问题尤其在写菜单的时候经常遇到,即:一个页面内的"层"无论z-index设的多么大,只要遇到框架等便被截了:( 其实解决办法很简单,在要跨框架的层里加入<iframe>即可解决: <div style="position:absolute;width:140;height:200;z-index:10"><iframe src="menu.asp" width='100%' height='100%'>&l

ecshop验证码图片无法显示终极解决办法

ecshop验证码图片无法显示终极解决办法 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2014-06-06 客户在安装好ecshop之后所有前台的证码不显示,后台可以显示,ECSHOP开发中心总结了解决办法分享给各位朋友. 可以在后台有,前台不显示 打开includes/init.php文件,将如下这段代码屏蔽即可. /* 判断是否支持 Gzip 模式 */if (!defined(‘INIT_NO_SMARTY’) && gzip_enabled())

Zabbix 2.2.4 无法显示中文解决办法

安装了zabbix2.2.4 在web界面profile中选择语言的时候没有中文zh_CN,并不是2.2.4版本不支持中文而是在zabbix/locales.inc.php中没有开启中文选项显示. 修改locales.inc.php将中文开启: [[email protected] ~]# vim /var/www/html/zabbix2.2.4/include/locales.inc.php 刷新zabbix web界面,查看语言选项: Zabbix 2.2.4 无法显示中文解决办法