-
更新UI的几种方法 1、activity.runOnuiThread 2、handler post 3、handler sendMessage 4、View.post查看全部
-
handler 是什么?查看全部
-
1.handler是什么:handler是android给我们提供用来更新UI的一套机制,也是一套消息处理的机制,我们可以发送消息,也可以通过它处理消息 2.android 在设计的时候,就封装了一套消息创建 传递 处理机制,如果不遵循这样的机制就没有办法更新UI信息,就会抛出异常信息查看全部
-
handler负责发送消息,Looper负责接收handler发送的消息,并且直接把消息传回给handler自己 MessageQueue就是一个存储消息的容器查看全部
-
更新UI操作实在主线程的消息队列当中去轮回处理的查看全部
-
target:指明地址查看全部
-
handler:是android提供的更新UI的机制和消息处理机制查看全部
-
handler是:查看全部
-
tip1 private MyRunnable runnable = new MyRunnable; #main onClick(){ handler.removeCallbacks(runnable); }查看全部
-
step3 * use Thread + private handler = new Handler(){ ...do more... } + Message msg = handler.obtain(); msg.obj = person;/*Person person = new Person; person.age=23; person.name="nate";*/ handler.sendMessage(msg);查看全部
-
step2 *remove Thread *make MyHandler & private it class MyHanlder implment Handler{ --void run(){ ----do sth, like: imgView.setImg( images[index++] ); ----myhandler.post(); --} } private myhandler = new MyHandler; #main myhandler.post();查看全部
-
step1 private handler = new Handler(); \\ new Thread(){ --void run(){ ----Thread.sleep(1000); ----handler.post(); --} }查看全部
-
step0 new Thread(){ void run(){ textView.setText("aa"); } }.start(); //fail, cannot update UI with ThreadClass查看全部
-
非UI线程能否更新UI --->刚启动的时候,立即在非UI线程更新->不报错。 --->休眠2s钟以后,更新——————>报错 更新UI-->会调用checkForRelayout()方法 -->invalidate()方法-->invalidate(true)方法,关注viewParent-->ViewRootImpl是ViewParent的实现类 --->p.invalidateChild()-->查看ViewRootImpl.invalidateChild()-->checkThread()方法-->判断UI线程是否是当前线程,不想等抛出异常。 ViewRootImpl是onResume()方法才会创建。所以onCreate()方法中要延迟才可以。 handleResumeActivity()方法---》viewManager.addView()-->ViewRootImpl初始化。查看全部
-
handler.sendMessage() handler.post(Runnable r)--->handler.sendMessage(),内部封装成message(). activity.runOnUiThread()---->判断Thread.currentThread()是否是UIThread.然后利用自身的Handler.sendMessage() view.post()------>ViewRootImpl.getRunQueue().post--->内部也是handler查看全部
举报
0/150
提交
取消