android消息机制

android消息机制,异步和多线程

隐身守侯 提交于 2019-12-05 12:57:20
android 消息机制 , 异步和多线程 前言 在xxxx 1.92 正式版的时候付费购买曾单独封装了一个流程 PaymentFlow 并继承于 Handler, 调用方只要依据这个流程创建流程实例并触发开始 , 实例即可依据设定的支付流程完成 . 但在异步和多线程方面却有 ’ java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()’ 的问题 . 最近在作风网络库的替换 , 网络库使用的 Handler 的继承类 MessageHandler 作为回调 . 同样也存在多线程的异步调用或诸塞的问题 , 所以在此就将 Handler 的机制在研究一遍 . 1. Handler,Looper,Activity Android 应用程序是消息驱动的 , 并通过 Looper,Handler 来实现消息循环机制 , 且是针对线程的 . 一个线程可以存在 ( 当然也可以不存在 ) 一个消息队列和一个消息循环 (Looper), 特定线程的消息只能分发给本线程 , 不能进行跨线程 , 跨进程通讯 . 但是创建的工作线程默认是没有消息循环和消息队列的 , 如果想让该线程具有消息队列和消息循环 , 需要在线程中首先调用 Looper.prepare()