zoukankan      html  css  js  c++  java
  • 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文件哪些就没必要贴出来了。

  • 相关阅读:
    ELK学习总结(2-1)mavel -》sense 和 索引初始化
    ELK学习总结(1-3)倒排索引
    java基础总结(1)安装jdk
    ELK学习总结(1-2)安装ElasticSearch
    T410升级笔记
    CURL学习总结(1)
    restful架构风格设计准则(二)以资源为中心,一个url
    GIT入门笔记(18)- 标签创建和管理
    GIT入门笔记(17)- 创建分支dev_lsq, 提交到代码
    GIT入门笔记(16)- 分支创建和管理
  • 原文地址:https://www.cnblogs.com/liangstudyhome/p/3847796.html
Copyright © 2011-2022 走看看