Handler简单用法
来源:互联网 发布:手机淘宝评论怎么截图 编辑:程序博客网 时间:2024/06/03 17:36
private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what) { case SUCCESS: ivIcon.setImageBitmap((Bitmap) msg.obj); break; case ERROR: Toast.makeText(MainActivity.this, "抓取失败", Toast.LENGTH_LONG).show(); break; } }};1, Message message = new Message(); message.obj = object; handler.sendMessage(message); 2,服用系统提供的。 Message message = handler.obainMessage(); message.obj = object; handler.sendMessage(message); 3,handler.sendMessage(message); 作用等同于: message.sendToTarget(); 移除消息 handler.removeCallbacks(runbale);
mHandler = new Handler( mCallback ) ;
private Handler handler = new Handler(new CallBack){ @Override public void handleMessage(Message msg) { switch (msg.what) { case SUCCESS: ivIcon.setImageBitmap((Bitmap) msg.obj); break; } }};
同上:
public class HandlerDemo { private Handler myHandler1 = new Handler(new MyHandlerCallback()); private Handler myHandler2 = new MyHandler(); private class MyHandlerCallback implements Handler.Callback { @Override public boolean handleMessage(Message msg) { // Handle messages. return false; } } private class MyHandler extends Handler { @Override public void handleMessage(Message msg) { // Handle messages. } }}
CallBack里面的函数,如果return 为false,着不会做其他的操作,如果return=true,这会拦截public void handleMessage(...)函数的的操作。 public boolean handleMessage(Message msg) { // Handle messages. return false; }
HandlerThread
创建一个HandlerThread,即创建了一个包含Looper的线程。HandlerThread handlerThread = new HandlerThread("leochin.com");handlerThread.start(); //创建HandlerThread后一定要start()获取HandlerThread的LooperLooper looper = handlerThread.getLooper();创建Handler,通过Looper初始化Handler handler = new Handler(looper);
HandlerThread thread = new HandlerThread("handler thread"); thread.start(); handler = new Handler(thread.getLooper(){ public void handleMessage(android.os.Message msg){ Sout("current thread ------>"+Thread.currentThread()); } }); handler.sendEmpthMessage(1);
handler常见 报错
1,Only the original thread that create a view hierarchy can touch its view
由于:在子线程中修改主线程的UI
2,Can not create handler inside thread t….
缺少Looper.loop();
new Thread(){ public void run(){ Handler handler = new Handler(); }}.start();
0 0
- Handler简单用法
- Handler简单用法
- Handler的简单用法
- android中Handler简单用法
- android中handler简单用法
- Android之Handler简单用法
- Android Handler 的简单用法
- android中handler简单用法
- Android 七 Handler Bundle Message 简单用法
- 最简单的Handler的用法
- Android handler最简单的用法
- Android Handler Runnable Message Thread 简单用法
- Handler用法之简单实现轮播图
- handler用法
- Handler用法
- Handler用法
- handler用法
- Handler用法
- Double Shortest Paths 网络流
- Java中Runnable和Thread的区别
- 树梅派 更换源后,依然从官方源更新
- POJ3349_Snowflakes
- nyoj_106 背包问题
- Handler简单用法
- Leetcode - Excel Sheet Column Title
- 使用Messenger实现进程间的相互通信
- Worm
- 类成员函数回调
- ZOJ 3938 Defuse the Bomb(水题)
- LCA最近公共祖先问题(Tarjan离线算法)
- HDU 4502 吉哥系列故事——临时工计划(dp)
- 练习赛