• ToastUtils


    import android.content.Context;
    import android.os.Handler;
    import android.os.Looper;
    import android.widget.Toast;
    
    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();*/
    
        }
    }
    
  • 相关阅读:
    安卓获取双IMEI
    NodeJS异步、同步 创建多层文件夹
    Winfrom 控件名称缩写
    Unobtrusive Ajax
    ID 为 17608的进程当前未运行
    欢迎
    路由
    VS快捷键
    Test
    并查集与带权并查集---由浅入深
  • 原文地址:https://www.cnblogs.com/loaderman/p/6435200.html
Copyright © 2020-2023  润新知