Android在子线程显示Toast闪退,Can't toast on a thread that has not called Loop

 Lan   2020-09-24 20:35   209 人阅读  0 条评论

新建一个类toastHelp

package ink.cik.logininfoapp.eneity;

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

public class toastHelp {
    static Toast toast = null;

    public static void show(Context context, String text) {
        try {
            if (toast != null) {
                toast.setText(text);
            } else {
                toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
            }
            toast.show();
        } catch (Exception e) {
            //解决在子线程中调用Toast的异常情况处理
            Looper.prepare();
            Toast.makeText(context, text, Toast.LENGTH_SHORT).show();
            Looper.loop();
        }
    }
}

然后需要用的时候直接调用

toastHelp.show(LoginActivity.this, responseInfo.getInfo());

image.png

本文地址:https://www.lanol.cn/post/404.html
版权声明:本文为原创文章,版权归 Lan 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?