Handler整理
来源:互联网 发布:澳洲上市公司数据查询 编辑:程序博客网 时间:2024/06/16 05:33
一、handler的基础用法:在一个Runnable的实现类的run()方法中,发送Message消息(子线程),在Handler的实例的handleMessage中,判断相应的message并作出相应的处理(主线程)。
public class BounceView extends View{float x=40;public BounceView(Context context) {super(context);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);x+=10;Paint mPaint=new Paint();mPaint.setAntiAlias(true);mPaint.setColor(Color.GREEN);canvas.drawCircle(x, 40, 40, mPaint);}}
public class MainActivity extends Activity {protected static final int GUIUPDATEINDENTIFIER=0x101;Thread myRefreshThread=null;BounceView myBounceView=null;Handler myHandler=new Handler(){public void handleMessage(android.os.Message msg) {switch (msg.what) {case MainActivity.GUIUPDATEINDENTIFIER:myBounceView.invalidate();//使窗口无效,意味着窗口需要重绘break;}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.requestWindowFeature(Window.FEATURE_NO_TITLE);this.myBounceView=new BounceView(this);this.setContentView(this.myBounceView);new Thread(new MyThread()).start();}class MyThread implements Runnable {@Overridepublic void run() {while(!Thread.currentThread().isInterrupted()){Message message=new Message();message.what=MainActivity.GUIUPDATEINDENTIFIER;MainActivity.this.myHandler.sendMessage(message);try {Thread.sleep(100);} catch (InterruptedException e) {}}}}}
二、利用handler.post()更新UI
myView=new MyView(this);mHandler=new Handler();//启动线程:第一种方法(仍是主线程)mHandler.post(new Runnable() {@Overridepublic void run() {System.out.println("1.run方法在执行。。。"+Thread.currentThread().getName());myView.invalidate();mHandler.postDelayed(this, 100); }});//启动线程:第二种方法(第一次是子线程,以后的递归调用仍是主线程)//new Thread(new Runnable() {//@Override//public void run() {//System.out.println("2.run方法在执行。。。"+Thread.currentThread().getName());//myView.invalidate();//mHandler.postDelayed(this, 100); //}//}).start();setContentView(myView);}三、在线程里直接更新UI
0 0
- Handler整理
- Handler整理
- android:Handler整理总结
- Handler了解整理
- handler知识整理
- Handler机制学习整理
- 整理Handler源码
- Handler机制整理
- handler机制原理全面整理
- 【Android技术整理】Handler以及Handler如何实现多线程
- android.os.handler相关知识整理
- android.os.handler相关知识整理
- 3-15笔记 待整理 Handler AsyncTask
- 自己搜集,整理的Handler见解
- android.os.handler相关知识整理
- Android多线程中的Handler机制、Looper的介绍与整理
- handler类的作用:--有道笔记的整理
- Android 内存泄露 和 Handler内存泄露 整理
- 敏捷开发一千零一问系列之三十八:计划扑克就是打不出个结果怎么办?
- C语言实现《设计模式之禅》之代理模式——普通代理
- Exception in thread "RMI TCP Connection(idle)" java.lang.OutOfMemoryError: PermGen space
- OpenGL学习十四:光照1
- ESXI 5.5的搭建以及VMware9.0的虚拟机移植
- Handler整理
- 谁动了我的cpu——oprofile使用札记
- IE9 table显示问题,td出现错位的解决方法
- C++ 智能指针
- ASP.NET中的URL编码解码
- repeater全选
- oracle 日期格式
- 安卓入门:动态输入日期与时间
- Oracle一些接口表的使用方法