Toast 在activity关闭后,还在显示的问题解决

Toast 在activity关闭后,还在显示的问题解决 【Toast 在activity关闭后,还在显示的问题解决】整理了一下关于Toast提示的相关知识.
其中,有关于Toast在activity关闭后仍然显示的问题,找到了其中的一个办法,对应toast.show(); 方法的toast.cancel();
具体代码:

//oncreate方法中弹出toast提示 Toast toast = null; if(toast == null){ toast = Toast.makeText(mContext,"这里是toast提示",Toast.LENGTH_SHORT); }toast.show(); //在这里弹出toast提示

在activity被挂起的时候,对弹出的toast提示进行处理.
/** * 处理onStop方法, * */ @Override protected void onStop() { super.onStop(); toast.cancel(); }/** * 处理onPause方法 * */ @Override protected void onPause() { super.onPause(); toast.cancel(); }/** * 处理onDestory方法 * */ @Override protected void onDestroy() { super.onDestroy(); toast.cancel(); }

这样在activity被挂起的时候,toast提示也就消失了.但是,单纯的这么做就必须要在每一个activity中都加入以上代码,也不便于管理.
1.创建一个Toast提示的工具类:ToastUtils
代码如下:
public class ToastUtils {private static Toast mToast,mToastNormal; private static View view; /** * 普通的toast提示 * */ public static void showNOrmalToast(Context mContext,String message){ToastUtils.cancel(); if(mToastNormal == null){ mToastNormal = Toast.makeText(mContext, message, Toast.LENGTH_SHORT); }mToastNormal.show(); } /** *toast取消 */ public static void cancel(){if(mToast != null){ mToast.cancel(); mToast = null; }}}

2.最新创建一个ActivityBase类继承自Activity,在里面设置cancel()
//代码如下 package com.example.ademo.utils; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.Window; /** * @author EL *重写activity类 *1.去掉状态栏 *2.重新处理onstop.onpause,ondestory方法 *3. */ public class ActivityBase extends Activity{protected Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); mContext = ActivityBase.this; }/** * 处理onStop方法, * */ @Override protected void onStop() { super.onStop(); ToastUtils.cancel(); }/** * 处理onPause方法 * */ @Override protected void onPause() { super.onPause(); ToastUtils.cancel(); }/** * 处理onDestory方法 * */ @Override protected void onDestroy() { super.onDestroy(); ToastUtils.cancel(); } }

这样在其他的activity继承自ActivityBase,然后就可以随时调用ToastUtils.showNormalToast()方法了,
代码:
//调用toast ToastUtils.showNormalToast(mContext,"这里是普通的normal调用"); //...

如上就实现了activity关闭后,toast提示也随之关闭.

    推荐阅读