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

  • 相关阅读:
    通信—互联网协议入门2(转载)
    通信—互联网协议入门1(转载)
    通信—HTTP 协议入门(转载)
    通信—跨域资源共享
    ionic3使用echart插件
    通信—HTTP与HTTPS
    ionic学习笔记—常用命令
    ionic学习笔记—创建项目
    Spark 资源池简介
    数据库设计原则
  • 原文地址:https://www.cnblogs.com/liangstudyhome/p/3847796.html
Copyright © 2020-2023  润新知