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文件哪些就没必要贴出来了。

  • 相关阅读:
    MySQL显示数据库版本的SQL语句
    如何清空ostringstream对象中的内容
    C/C++中的Split函数
    关于socket长连接的心跳包
    利用MyEclipse配置S2SH三大框架篇-Spring配置
    利用MyEclipse配置S2SH三大框架篇-struts2配置
    Oracle OCP 11G 051答案解析目录
    AFX_EXT_CLASS
    C++中的explicit关键字
    SSH2三大框架整合警告
  • 原文地址:https://www.cnblogs.com/liangstudyhome/p/3847796.html
Copyright © 2011-2022 走看看