Intent的接收处理:

1、Receiver报名
这之前已经被引入
然后看看剩下的两个接收功能上面。 scheduleReceiver scheduleRegisteredReceiver;

scheduleReceiver会掉到activitythread.java中的scheduleReceiver函数, activitythread.java这个就是目标activity的主体,然后该函数就调用到该文件里的handlemessage函数,这个函数在收到RECEIVER消息后就调用handleReceiver来处理。这是一个重要的函数。以下分析一下这个函数的处理:
1。取得这个Intent指向的component,包含包名,类名;
2。取得包信息。这个结构提供了getClassLoader接口;

3,通过java.lang.ClassLoader cl = packageInfo.getClassLoader取得classLoader; 4。动态创建一个receiver。receiver = (BroadcastReceiver)cl.loadClass(component).newInstance(); 5,调用receiver.onReceive(context.getReceiverRestrictedContext(), data.intent),进入到真正的处理流程中去了; 6,调用finishReceiver来触发ActivityManagerService这个消息到其他receivers的发送或者下一个broadcast的发送;

这当中最重要的就是这个onReceive函数。我们通常都会实现这么一个函数。然后在里面处理我们收到的消息;
scheduleRegisteredReceiver的逻辑
这个函数事实上就是针对你使用动态注冊的方式而弄的。也就是你在代码的中调用register注冊的方式。

总结:

Intent 从使用的角度来说,就是构造Intent,提供适当的參数,比方Action,比方数据类型。数据的uri等,然后发送出去;接收方须要注冊一个 receiver,然后提供onReceive函数就能够了。这个注冊能够简单的写在AndroidManifest.xml里面也能够通过 registerReceiver来完毕; 发送的时候有三个API能够用: sendBroadcast sendStickyBroadcast sendOrderedBroadcast 第一个用于发送同步播放; 二是用来发送广播粘; 第三个用于发送串行广播;

版权声明:本文博客原创文章,博客,未经同意,不得转载。

更多相关文章

  1. GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
  2. Android(安卓)Handler类消息传递机制(三)不同类中使用Handler
  3. android 退出activity
  4. 关于获取 android system feature 失败问题
  5. Android(安卓)用HttpClient 以Post方式提交数据并添加http头信息
  6. android graphic(13)—surface flinger中的“事务”
  7. Android(安卓)短信转换成彩信的消息数量(实例代码)
  8. Android(安卓)输入系统(三)InputReader
  9. Android下的Wifi (上层流程)

随机推荐

  1. JavaScript实现滑块验证案例
  2. 用python实现超强的加密软件
  3. C#中调用MySQL存储过程的方法
  4. table课程表,用户注册模板,内联框架实现后
  5. PHP方法的返回值示例详解
  6. 一个简单的留言板
  7. dom元素的增删改操作
  8. PHP中国际化的字符串排序和比较对象详解
  9. js中的firstElementChild,lastElementChil
  10. 那些前端开发必不可少的生产力工具