ToastUtils

Posted 码上加油站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ToastUtils相关的知识,希望对你有一定的参考价值。

import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.widget.Toast;

/**
 * Created by zhengping on 2017/1/15,11:26.
 */

public class ToastUtils {

    //sHandler维护的是主线程的消息队列
    private static Handler sHandler = new Handler(Looper.getMainLooper());

    //无论如何,Toast都是在主线程中被调用的
    public static void showToast(final Context context,final String msg) {
        //判断是否是主线程
        if(Looper.myLooper() == Looper.getMainLooper()) {
            Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
        } else {
            //handler.sendMessage(msg) 把一个消息发送到了消息队列,这个消息队列属于主线程的呢还是子线程的呢,取决于handler维护的是哪一个线程的消息队列
            // 将runnable丢到主线程的消息队列
            sHandler.post(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
                }
            });
        }

        /*new Thread(new Runnable() {
            @Override
            public void run() {
                Looper.prepare();
                //handler维护的是子线程的消息队列
                Handler handler = new Handler();
                Looper.loop();
            }
        }).start();*/

    }
}

 

以上是关于ToastUtils的主要内容,如果未能解决你的问题,请参考以下文章

自定义ToastUtils

自定义ToastUtils

ToastUtils

ToastUtils

自定义ToastUtils

Android Studio 第六十一期 - Android ToastUtil