文章类型: ANDROID
关键词: Toast,在activity关闭后,还在显示的问题解决,android
内容摘要: Toast 在activity关闭后,还在显示的问题解决

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

2017/6/29 11:25:47    来源:apple    阅读:

整理了一下关于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提示也随之关闭。

↑ 上一篇文章:Android,UI主线程与子线程 关键词:Android,UI,主线程,子线程,多线程,Andro.. 发布日期:2017/6/26 15:41:07
↓ 下一篇文章:Android中如何实现蓝牙的配对与连接 关键词:Android中如何实现蓝牙的配对与连接,Android.. 发布日期:2017/7/20 16:39:57
相关文章:
Android Toast 显示时间问题的探讨 关键词:Android,Toast,显示时间问题的探讨 发布日期:2017-05-31 18:22
带你飞之Android多线程与异步任务(第二篇) 关键词:Android,多线程,异步任务,第二篇,,android,thread,Async,异步 发布日期:2017-09-12 17:32
带你飞之Android多线程与异步任务(第一篇) 关键词:Android,多线程,异步任务,异常操作 发布日期:2017-09-12 17:22
相关目录:.NETANDROIDJAVAJAVASCRIPT软件开发
我要评论
正在加载评论信息......