Android Intent 三解决
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 第一个用于发送同步播放; 二是用来发送广播粘;
第三个用于发送串行广播;
版权声明:本文博客原创文章,博客,未经同意,不得转载。
Android Intent 三解决的更多相关文章
- Android:调用其他程序中的activity和Permission Denial: starting Intent 错误解决办法
今天想调试多个task中栈的情况,在测试程序中调用另一个程序的activity, 代码片段如下: btnStartX=(Button)findViewById(R.id.btnStartX); btn ...
- Android:使用 DownloadManager 进行版本更新,出现 No Activity found to handle Intent 及解决办法
项目中,进行版本更新的时候,用的是自己写的下载方案,最近看到了使用系统服务 DownloadManager 进行版本更新,自己也试试. 在下载完成以后,安装更新的时候,出现了一个 crash,抓取的 ...
- [Android] Intent详解
[转]http://www.cnblogs.com/engine1984/p/4146621.html [正文] Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重 ...
- Android开发之解决APP启动白屏或者黑屏闪现的问题
在做搜芽的过程中,发现那个外包人缘做的不行,由于启动的时候会停顿,然后白屏一会,联想到几个月前我在我的三僚企业通信软件里面拉起9K-Mail的时候也会黑屏,所以决定学习一下.解决一下.这不,万能的网络 ...
- Android Intent 教程
原文:Android: Intents Tutorial 作者:Darryl Bayliss 译者:kmyhy 人不会漫无目的地瞎逛,他们所做的大部分事情--比方看电视.购物.编写下一个杀手级 app ...
- Android——Intent详解
Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用间的交互与 ...
- android Intent介绍
Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 ...
- 什么时候加上android.intent.category.DEFAULT
什么时候加上android.intent.category.DEFAULT 1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent ...
- android之android.intent.category.DEFAULT的用途和使用
1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...
随机推荐
- Android项目打包成APK文件
第一步:右键单击该项目选择Export项目 显演示样例如以下界面:选择Exprot Android Application 第二步:输入项目名称,默认的情况下是原始的项目名称 下一步: 点击 Crea ...
- thinkphp学习笔记8—命名空间
原文:thinkphp学习笔记8-命名空间 新版本(3.2)中采用命名空间的方式定义和加载类库文件,解决多个模块之间的冲突问题,并实现了更加高效的自动加载机制. 需要给类库定义所在的命名空间,命名空间 ...
- Qt Quick 组件和动态创建的对象具体的解释
在<Qt Quick 事件处理之信号与槽>一文中介绍自己定义信号时,举了一个简单的样例.定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Co ...
- Sky数 2097
Problem Description Sky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=2 ...
- CSS定位与层叠
position:static(静态定位) 当position属性定义为static时,可以将元素定义为静态位置,所谓静态位置就是各个元素在HTML文档流中应有的位置 podisition定位 ...
- oracle 数据库备份
//创建临时表空间create temporary tablespace test_temp tempfile 'D:\oracle\data\test\test_temp.dbf' size 32m ...
- Huffman树与最优二叉树续
OK,昨天我们对huffman数的基本知识,以及huffman树的创建做了一些简介,http://www.cnblogs.com/Frank-C/p/5017430.html 今天接着聊: huffm ...
- C#操作Xml:如何定义Xsd文件
Xml Schema的用途 1. 定义一个Xml文档中都有什么元素 2. 定义一个Xml文档中都会有什么属性 3. 定义某个节点的都有什么样的子节点,可以有多少个子节点,子节点出现的顺序 4. 定义元 ...
- HDU 4107 线段树
给出N个节点,M次操作,和p 每次操作 对l-r区间的每一个节点+c,若节点值>=p,则加2*c: 结点存当前区间伤害最小值,最大值,以及lazy操作.更新到假设最小值大于等于P,或者最大值小于 ...
- JS编程
JS编程常识 一.UI层的松耦合 松耦合就是要求各层遵循“最少知识原则”,或者说是各层各司其职,不要越权: HTML:结构层 CSS:表现层 JS:行为层 对于各层的职能,有一句比较贴切的解释:H ...