public class ToastUtils {
static Toast toast = null;
static Handler mainHandler = null;
/**
* 显示Toast信息(子线程也可以调用)
*/
public static void showText(Context context, int resId) {
show(context, null, resId);
}
/**
* 显示Toast信息(子线程也可以调用)
*/
public static void showText(Context context, String msg) {
show(context, msg, 0);
}
/**
* 通过handler(构造方法用MainLooper),实现子线程也能Toast
*
* @param context
* @param msg
* @param resId
*/
private static void show(final Context context, String msg, int resId) {
if (mainHandler == null) {
synchronized (ToastUtils.class) {
if (mainHandler == null) {
mainHandler = new Handler(context.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.obj != null) {
showString(context, String.valueOf(msg.obj), msg.arg2);
} else {
showInt(context, msg.arg1, msg.arg2);
}
}
};
}
}
}
Message message = mainHandler.obtainMessage(1, resId, Toast.LENGTH_SHORT, msg);
mainHandler.sendMessage(message);
}
private static void showInt(Context context, int resId, int time) {
if (toast == null) {
toast = Toast.makeText(context, "", time);
}
toast.setText(resId);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
private static void showString(Context context, String msg, int time) {
if (toast == null) {
toast = Toast.makeText(context, "", time);
}
toast.setText(msg);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
}
ToastUtil 配合Handler实现子线程直接显示Toast
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 关注公众号「陈洪标写字说画」给你更精彩 电脑版和手机版的黄庭坚《寒山子庞居士诗帖》长卷图片、本号「陈洪标写字说画」...
- 一. 已学类的继承关系 Objective-C中所有类的父类为NSObject类 NSObject的子类有:NSS...