Android 四大组件和Intent
一、Android有四大组件(component):Activity、Service、BroadcastReceiver、ContentProvider。
1、Activity
通过startActivity创建新的Activity,通过Intent将信息传递到新从Activity中。
如果需要返回值,则使用startActivityForResult,并重写onActivityResult方法。在被调用的Activity中,使用setResult将信息传递回调用处。
2、Service
使用startService、bindService、unbindService、stopService对Service进行操作。通过Intent传递信息。
这4个方法调用顺序和注意事项,可以查看日志 Android Service 和 Android Service执行unbind后再次执行bind的问题
3、BroadcastReceiver
使用sendBroadcast、registerReceiver、unregisterReceiver。
register是android.content.ContextWrapper中的方法,而Activity和Service都继承自ContextWrapper,所以Activity和Service都可以注册Receiver。
注册Receiver的方式有两种:可以不使用registerReceiver和unregisterReceiver,使用Manifest.xml中配置的方式注册Receiver,这种注册方式称为静态注册,Activity声明周期结束后,BroadcastReceiver依然可以接收到发给它的信息;如果使用registerReceiver和unregisterReceiver,就是动态注册,BroadcastReceiver的声明周期跟随Activity或Service的声明周期。
当这个Activity被销毁的时候,如果没有执行unregisterReceiver,系统会提示是否忘记取消注册。
sendOrderedBroadcast可以发送有序广播,每个广播在IntentFilter中设置priority属性,通过优先级保证Broadcast的执行顺序,priority值(-1000到1000)越大优先级越高。
4、ContentProvider
目前只是通过eoe视频学习了调用其他组件提供信息的使用方法。
二、Intent
Intent是组件间传递信息的方式。
这段时间的学习过程中,大多数时间都在使用Intent(Context, <Class ?>)方法构造Intent对象,这种构造对象的方式可以精确的调用Activity、Service、Broadcast等组件。但是缺点也很明显,比如,指定了一个Activity来打开文件,而如果用户没有安装对应的app,就没有办法打开文件。对于这样的需求,可以通过Intent(String action)来实现,需要在Manifest中定义IntentFilter。更多关于Intent的信息,可以查看日志Intent
Android 四大组件和Intent的更多相关文章
- Android四大组件之Intent
Intent不是android几大组件框架,但是确实是android 各大组件之间沟通的桥梁. 尤其Intent对于activity有很大的关系. 一下是我个人对task以及backstack的总结.
- Android四大组件之Intent(续2)
1.你如何通过一个intent来唤醒activity? this.startActivity(intent,request); 2.什么是显式.隐式的intents? 显式:指定组件名,通常 ...
- Android四大组件之Intent(续)
- Android四大组件之一“广播”
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...
- android四大组件(简单总结)
activity 一个Activity通常就是一个单独的屏幕(窗口) Activity之间通过Intent进行通信 android应用中每一个Activity都必须要在AndroidManifest. ...
- android四大组件之Broadcast
广播的概念 现实中:我们常常使用电台通过发送广播发布消息,买个收音机,就能收听 Android:系统在产生某个事件时发送广播,应用程序使用广播接收者接收这个广播,就知道系统产生了什么事件.Androi ...
- Android 四大组件之再论service
service常见的有2种方式,本地service以及remote service. 这2种的生命周期,同activity的通信方式等,都不相同. 关于这2种service如何使用,这里不做介绍,只是 ...
- Android四大组件及activity的四大启动模式
Android四大组件 1. 广播接收者的两种类型: (1)系统广播接收者,就是继承BroadcastReceiver这个类,然后还要在清单文件中注册,注册之后给他一个action.当系统发生了这个a ...
- Android成长日记-Android四大组件之Service组件的学习
1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它 ...
随机推荐
- error occurred at recursive SQL level 1
ORA-00604: error occurred at recursive SQL level 1出现的错误:java.sql.SQLException: ORA-00604: error occu ...
- PAT B1003 我要通过!
“答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答案正确”的条件是: 1 ...
- Eclipse-设置格式化代码时不格式化注释
在Eclipse里设置格式化代码时不格式化注释 今天格式化代码 发现直接format会把注释也一块格式化了,有时候会把好好的注释弄的很乱.甚为头疼. 查阅之后解决办法如下: Windows -> ...
- Android之基于小米天气的天气源库
大概去年的这个时候,有跟大家分享简洁天气这个应用. 该应用一開始使用的是中国天气网的数据,可是,由于须要反复多次请求server获取信息才干满足我们的需求,因此.后来我偷偷的将天气源更换成" ...
- Delphi DBGrid类控件定位到某一行,并更改为选中状态。
Delphi中,可以使用数据集控件提供的 Locate 成员方法快速定位至某条记录, 然后通过清除数据集控件的选中状态,并重新赋值达到我们的目的. grDirectory.DataSource.Dat ...
- 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包)
目录 在 R 中估计 GARCH 参数存在的问题(基于 rugarch 包) 导论 rugarch 简介 指定一个 \(\text{GARCH}(1, 1)\) 模型 模拟一个 GARCH 过程 拟合 ...
- 20155227《网络对抗》Exp7 网络欺诈防范
20155227<网络对抗>Exp7 网络欺诈防范 实践内容(3.5分) 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建 ...
- 20155237 2016-2017-2 《Java程序设计》第十周学习总结
20155237 2016-2017-2 <Java程序设计>第十周学习总结 教材学习内容总结 计算机网络,是指分布在不同地理区域的计算机用通信线路互连起来的一个具有强大功能的网络系统.网 ...
- WPF编程,通过Double Animation动态旋转控件的一种方法。
原文:WPF编程,通过Double Animation动态旋转控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/art ...
- [UOJ#461]新年的Dog划分[二分图染色、二分]
题意 给你一张无向连通图,你并不知道有哪些边,你首先要回答这张图是否是二分图,如果是,回答这张图黑白染色过后的任意一个点集.你需要在2000次询问内找到结果,每次你可以询问原图中一个边集删掉后是否还连 ...