建设上线网站,怎样用模板做网站,小程序平台入口,wordpress 臃肿Android 消息机制
Android 的消息机制也是Handler机制#xff0c;主要作用是用来在不同线程之间通信#xff0c;通常使用在子线程执行完成一些儿耗时操作#xff0c;需要回到主线程更新UI时#xff0c;通过Handler将有关UI操作切换到主线程。由于Android中主线程不可进行耗…Android 消息机制
Android 的消息机制也是Handler机制主要作用是用来在不同线程之间通信通常使用在子线程执行完成一些儿耗时操作需要回到主线程更新UI时通过Handler将有关UI操作切换到主线程。由于Android中主线程不可进行耗时操作所有我们的网络请求只能放在子线程中又由于在子线程中不能更新UI所以我们就需要使用Handler切换到主线程并更新UI。
消息机制的工作流程
应用程序启动的时候在主线程中会默认调用 Looper.preper() 方法初始化Lopper对象绑定到当前线程中并在Looper内部维护一个MessageQueue接着调用Handler.sendMessage()发送消息会通过MessageQueue.enqueueMessage()向MessageQueue中添加一条消息主线程调用Looper.looper()开启循环不断轮询消息队列通过MessageQueue.next()取出消息取出的message不为空则调用msg.target.dispatchMessage()传递分发消息目标handler收到消息后会执行handler.handlerMessage()方法处理消息 Handler 面试题 一个线程有几个handler一个线程有几个Looper如何保证handler内存泄露原因为什么其他的内部类没有说过有这个为题为何主线程可以new Handler如果想要在子线程中new Handler要做些什么准备子线程中维护的Looper消息队列无消息的时候的处理方案是什么有什么用既然可以存在多个handler往messageQueue中添加数据(发消息时各个Handler可能处于不同线程)那些内部是如何确保线程安全的我们使用Message是应该如何创建它使用Handler的postDelay后消息队列会有什么变化Looper死循环为什么不会导致应用卡死