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

  • 相关阅读:
    【1】maven来管理我的SSM项目
    mybatis从数据库中取到的date格式不是yyyy-MM-dd HH:mm:ss
    hadoop的webUI查看Live Nodes为1
    CentOS6.8系统下,ecipse下进行编辑操作,意外退出
    【5】namenode启动过程
    电脑意外重启,导致虚拟机启动失败
    第3章 路由和数据传递
    第2章 基于三层架构搭建MVC系统
    第1章 进入ASP.NET MVC世界
    第13章 集合
  • 原文地址:https://www.cnblogs.com/liangstudyhome/p/3847796.html
Copyright © 2011-2022 走看看