为了账号安全,请及时绑定邮箱和手机立即绑定

Android面试常客Handler详解

难度中级
时长 2小时 0分
学习人数
综合评分9.30
169人评价 查看评价
9.7 内容实用
9.3 简洁易懂
8.9 逻辑清晰
  • 通过handler来实现图片定时轮播的代码: public class MainActivity extends Activity { private Handler handler = new Handler(); private ImageView imageView; // 将我们保存在文件夹中的三张图片进行了实例化 private int[] images = { R.drawable.image1, R.drawable.image2, R.drawable.image3 }; // 创建的下标,用来实现当前是哪张图片显示 private int index; // 创建了一个我们自己写的Runnable的对象 private MyRunnable myRunnbale = new MyRunnable(); class MyRunnable implements Runnable { @Override public void run() { // TODO Auto-generated method stub index++; index = index % 3; imageView.setImageResource(images[index]); // 通过handler的postDelayed的方法,进行定时的执行run方法中的代码 handler.postDelayed(myRunnbale, 1000); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView = (TextView) findViewById(R.id.textView1); imageView = (ImageView) findViewById(R.id.imageView1); // 在主线程中执行上面的操作 handler.postDelayed(myRunnbale, 1000); } }
    查看全部
  • sendMessage sendMessageDelayed post(Runnable) postDelayed(Runnable,long) 图片切换例子思路 首先搞一个imageview 然后搞三张图片用数组装上 在然后搞一个变量在线程中实现++ 并且对3取余 最后用handler.postDelayed(myrunnable,1000);进行更新
    查看全部
  • handler是android给我们提供用来更新UI的一套机制,也是一套消息处理的机制,我们可以发送消息,也可以通过它来处理消息 Android在设计的时候,就封装了一套消息创建,传递,处理机制,如果不遵循这样的机制的话,就没有办法更新ui信息,也就是不使用handler会抛出异常消息
    查看全部
    0 采集 收起 来源:Handler是什么

    2016-03-16

  • handler负责发送消息,loper负责接收数据,且回调给handler
    查看全部
  • 我导错包,导致修复不了问题
    查看全部
  • handler 两个作用 :1.更新UI 2.消息处理
    查看全部
    0 采集 收起 来源:Handler是什么

    2016-03-15

  • 消息创建,
    查看全部
    0 采集 收起 来源:Handler是什么

    2016-03-13

  • 面试用:在非主线程是否可以更新UI 答:当刚启动还没有onResume的时候可以,即onCreate里面 ViewRootImp是在onResume方法中初始化的,在onCreate方法中创建线程并执行,此时还没有初始化ViewRootImp
    查看全部
  • android中更新UI的几种方式: 1.handler.sendMessage(Message msg) handler.sendEmptyMessage(int what) 2.handler.post(Runnable run) 3.runOnUiThread(Runnable run) 4.textView.post(Runnable run)
    查看全部
  • 关于Callback返回值的true和false 源码中 /* public void dispatchMessage(Message msg) { if (msg.callback != null) { handleCallback(msg); } else { if (mCallback != null) { //如果返回值为false,下面的handler本身的handleMessage(msg)才有机会被执行 if (mCallback.handleMessage(msg)) { return; } } handleMessage(msg); } }*/
    查看全部
  • handler执行的线程中是可以直接访问UI线程的; handler是可以发送,创建处理Message方法 的 handler匿名内部类中的handleMessage()方法可以处理Message Message message=handler.obtainMessage()得到系统消息(自动定位到handler就不用handler.sendMessage()) 或者 Message message=new Message() message.arg1=xx message.get2=xx message.obj=xxx handler发送的消息 handler.sendMessage(message) message.sendToTarget()对于已经绑定好handler的message
    查看全部
  • handler的四种使用的方法: sendMessage sendMessageDelayed post(Runnable) postDelayed(Runnable,long)
    查看全部
  • 为什么需要使用handler: Android在设计的时候,就封装了一套消息创建,传递,处理机制,如果不遵循这样的机制的话,就没有办法更新ui信息,也就是不使用handler会抛出异常消息
    查看全部
    0 采集 收起 来源:Handler是什么

    2016-03-13

  • handler是android给我们提供用来更新UI的一套机制,也是一套消息处理的机制,我们可以发送消息,也可以通过它来处理消息
    查看全部
    0 采集 收起 来源:Handler是什么

    2016-03-13

  • 在ViewRootImpl(用来更新UI的一些判断处理逻辑,在onResume()方法中调用)没有实例化的时候是不会check是否是主线程,也就是说,在非UI线程中是可以更新UI的,但是为了线程安全的原因,系统会强制要求只能在主线程中更新UI。判断是否在主线程更新UI的程序要ViewParent(ViewRootImpl的一个实现类)不为空的情况下,但是第一个程序ViewParent还没有实例化,所以没有调用哪个checkThread的方法来判断是否在主线程,所以可以更新。
    查看全部

举报

0/150
提交
取消
老师告诉你能学到什么?
通过本课程,你将学到: 1、什么是Handler 2、如何使用Handler 3、Handler的原理是什么 4、如何定义一个与线程相关的Handler 5、Android更新UI的几种方式 6、非UI线程真的不能更新UI吗 7、Handler使用过程中遇到的问题

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!