Android学习笔记 15 Messenger & DownloadManager

本文介绍了Android中的Messenger和DownloadManager。Messenger用于跨进程间基于Message的通信,而DownloadManager是系统提供的下载管理类,支持下载请求、状态查询等功能。文章详细阐述了两者的基本概念、使用步骤和示例代码。
摘要由CSDN通过智能技术生成

Day15 Messenger & DownloadManager

  • Messenger 信使
  • DownloadManager 下载管理器

Messenger 信使

  • 概述
  • 使用方法
概述

Messenger引用了一个Handler对象,以便others能够向它发送消息(使用mMessenger.send(Message msg)方法)。
该类允许跨进程间基于Message的通信(即两个进程间可以通过Message进行通信),在服务端使用Handler创建一个Messenger,客户端持有这个Messenger就可以与服务端通信了。

使用Messenger作为中介实现跨进程的线程间通信

使用步骤
  • 服务端:mMessenger = new Messenger(mHandler)
  • 客户端使用bindlerService请求连接远程
  • 远程onBind方法返回一个bindler:return mMessenger.getBinder()
  • 客户端使用远程返回的bindler得到一个信使(即得到远程信使)
  • 客户端可以使用这个远程信使对象向远程发送消息:rMessenger.send(msg);

不能通过Message.obj参数,因此obj没有实现Parcelable接口
如果需要传送数据,可以通过==Message.setData(Bundle)== 方法

示例代码
  • 服务端
    /**
    * 基于Messenger信使实现两个进程之间的线程间通信: 应用间使用同一个Handler对象
    * 1) 服务端:
    *       
     *     1. 创建Service子类,在类中声明Handler和Messenger类对象
    *     2. 在onBind()方法中,获取Messenger的IBinder对象,并返回
    *     3. 注册Service,并声明隐式启动或绑定组件的Action
     * @author apple
     *
    */
    public class PrintService extends Service {
   

    //1. 声明和实例化Handler及Messenger类对象
    private Handler mHandler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            //处理其它线间或进程发送过来的消息
            Log.i(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值