在非UI线程中使用Toast
来源:互联网 发布:手机推广软件赚钱 编辑:程序博客网 时间:2024/05/21 13:32
- public void showToast(String msg){
- Looper.prepare();
- Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
- Looper.loop();
- }
public void showToast(String msg){Looper.prepare();Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();Looper.loop();}
只需要加上那两句就能在非UI线程中显示Toast
- Toast里面的show()
- public void show() {
- ...
- service.enqueueToast(pkg, tn, mDuration); //把这个toast插入到一个队列里面
- ...
- }
Toast里面的show() public void show() { ... service.enqueueToast(pkg, tn, mDuration); //把这个toast插入到一个队列里面 ... }
- Looper
- public static final void prepare() {
- if (sThreadLocal.get() != null) {
- throw new RuntimeException("Only one Looper may be created per thread");
- }
- sThreadLocal.set(new Looper()); //在当前线程中创建一个Looper
- }
- private Looper() {
- mQueue = new MessageQueue(); //关键在这,创建Looper都干了什么。 其实是创建了消息队列
- mRun = true;
- mThread = Thread.currentThread();
- }
Looperpublic static final void prepare() { if (sThreadLocal.get() != null) { throw new RuntimeException("Only one Looper may be created per thread"); } sThreadLocal.set(new Looper()); //在当前线程中创建一个Looper }private Looper() { mQueue = new MessageQueue(); //关键在这,创建Looper都干了什么。 其实是创建了消息队列 mRun = true; mThread = Thread.currentThread(); }
总结下:Toast 显示的必要条件:
1:Toast 显示需要出现在一个线程的消息队列中.... 很隐蔽
原文地址:http://blog.csdn.net/xiaanming/article/details/8904645
补充:在调用了Looper.loop(); 之后,似乎会让整个线程停止,不太懂,还应该再做了解
0 0
- 在非UI线程中使用Toast
- 在非UI线程中显示Toast
- 非UI线程中Toast
- Android在非UI线程中显示Toast
- Android在非UI线程中显示Toast
- Android在非UI线程中显示Toast
- Android在非UI线程中显示Toast
- Android在非UI线程中显示Toast
- Android在非UI线程中显示Toast
- Android在非UI线程中显示Toast
- Android在非UI线程中显示Toast
- Android在所有代码中使用Toast,包括非UI线程
- IntentService(或非UI线程)中使用Toast
- 非UI线程中显示Toast
- Toast在非UI主线程的其他线程中显示报错
- 非 UI 线程 调用 Toast
- 非UI线程中显示Alertdialog控件或Toast
- 在非anctivity类中使用Toast
- View点击事件
- HDU-高精度小数加法-最大400位
- NYOJ 题目926 概率计算(数学,水题)
- 揭秘17位华人巨富的第一桶金
- 字符编码问题,云里雾里的字符格
- 在非UI线程中使用Toast
- C Primer Plus-运算符
- fmt:formatDate的输出格式
- 并发编程系列之一:锁的意义
- 20150127Review
- 13 第十三天【健身】
- three.js 源码注释(七十一)extras/geometries/CylinderGeometry.js
- 【考纲】2013年系统集成项目管理工程师(中级)考试大纲-刘俊平
- PropertyReferenceException: No property