day32_安卓基础之activity生命周期_receiver广播接收者
=========4大核心组件介绍
四大核心组件:
Activity(活动), broadcastReceiver(广播接收者), Service(服务), ContentProvider(内容提供者)
activity的声明周期介绍&onCreate和onDestory方法的用处
记事本
onstart和onstop的应用场景
onRsume和onPause的应用场景
Android中第一个 核心的 组件
每次建一个工程 的时候, 都会 默认的建一个 MainActivity
onCreate在创建对象的时候调用
OnDestroy在对象销毁的时候调用
应用场景参考:
Onstart 在界面可见的时候被调用
OnStop在界面不可见的时候被调用
应用场景参考:
OnPause 当界面 处于 可见,但是 又 失去焦点这个 阶段的时候 会被 调用
onReumse 当界面 处于 可见 到 获得焦点这段 的时候 被 调用
打游戏: 暂停/继续
一个面试题:
请描述一下 activity的声明周期 ,以及各个生命周期的方法 有 什么应用场景?
acitivity中的onResart的使用
home键恢复的时候使用
横竖屏切换的时候activity的声明周期
控制 横竖屏 切换的时候, activity的生命周期
默认的情况下, 一个activity的生命 周期 是这样的,在横竖屏切换的时候, 会销毁当前的activity, 然后在 重新去创建这样第一个activity
所以 当前这里的游戏 , 会影响 用户的感受 .
控制在 activity 创建的时候, 不要因为 横横竖屏切换等等一些因素 而影响到 activity 周期 周期
任务和栈的介绍
LauchMode
Task: 翻译过来叫做 任务, 维护了记录了 当前 应用的 内存空间 中, 有哪些 组件在运行着
Stack: 栈 , 栈的特点(后进先出 ) , 队列 (先进先出)
任务栈: 一种内存结构, 存储了 当前的android 应用 中的各个组件的 运行 状况 .
每一个activity都有自己的启动模式
activity的标准启动模式和singeTop启动模式的介绍
启动模式 有 4 种 :
- Standard: 标准的模式 -- 默认的模式
每次 收到 intent , 那么 就会 新创建 activity 的实例出来,放到 任务栈中
- SingleTop: 单一顶部模式
如果发现当前的任务栈中的栈顶是 当前activity的实例, 那么就 直接使用 当前的activity的实例, 不再新创建.
如果当前栈顶不是 当前activity的实例, 那么就 创建..
源生的 mms的 编辑短信的 activity的 启动模式就是 singleTop.. 提高用户的感受, 可以很好的提示 用户 之前还有短信没有 编辑完..
singleInstance启动模式的介绍
- SingleTask: 单一任务栈模式
表示 当前的 activity 只会在 当前的任务栈中只有一个 实例了 ,
如果再次去尝试启动当前的activity, 那么 不会再次重新创建的当前的activity实例了 ,并且 如果当再次去尝试启动当前的acitivity的时候, 当前的activity不是处于任务栈的栈顶,会清空 当前处于 activity之上的哪些acitvity
应用场景:
如果一个activity启动的时候,占用的cpu的资源非常多, 非常耗 内存, 而手机中的内存又是非常珍贵的,那么这个时候 就 建议将 这样的activity的启动模式设置为 singleTask
例如 :
- SingleInstance: 单一实例模式
单一实例 ---- 如果某个acitvity的启动模式设置为 SingleInstance ,那么 在整个 android 手机 就只会有一个 这样的activity的实例了
对于 一些 整个系统中,永远都只存 一个同样的界面的activity 就会声明使用这种启动模式
- 始终以 secondActivity为基准
广播接收者的快速入门
也是一个核心的组件
专门用来接收广播的
第一步:
买个收音机
第二步:
装电池
第三步:
调节频道
具体代码实现步骤:
- 写个类,继承BroadCastReceiver的类 那么就 有了一个收音机
- 到 清单 manifest文件中进行 装电池 --- 配置 的事儿
- 调节频道--- 设置 接受的广播的类型
开机完成的广播接收者
注意 , 步骤与之前是一样的, 但是 需要在 清单文件中, 添加这样一个
权限 .
可以用来 干什么 呢?
统计用户信息
ip拨号的原理实现
12593 , 17951
第一步: 写一个 广播接收者:
第二步:
到 清单文件中进行 配置
第三步:
添加相应 的权限
那么最终在电话外拨的时候, 如果发现是拨打的长途电话...
在前面加拨 17951
统计用户的数据
小作业
收到 耳机线插入或者 拔出的 广播
自定义广播以及接受自定义的广播
干掉MainActivity 程序的安装图标就会消失
自定义有序广播接收者
有序广播和无序广播的区别&有序广播中的各个参数作用
有序广播可以在特定的接收者收到广播后 取消广播的继续发送, 可以 更改 广播的数据
无序的广播不能去取消广播的发送. 不可以更改广播的数据
开发短信窃听器
接受特殊的广播事件
在android操作 系统, 有一些 广播是经常 会发出来的, 对于这些经常会发出来的广播 ,android 系统中,谷歌工程师在设计的时候, 将其设计为 只能通过 代码去 注册这样的广播接收 者, 通过配置文件去 配置 是不好用的 .
例如: 手机的 锁屏/解锁, 手机电量变化
这也是一个面试题 ...
作业:
- activity的生命周期 (必须会)
Oncreate, onstart, on resume, onpause, onstop , ondestroy, on restart
2.生命周期的方法的应用场景
- 启动模式:
- 手机横竖屏切换
ConfigChanges: orientation|screensize|keyboard
Orientation:
格斗的例子
- ip拨号器
- 中央政府发蘑菇---有序广播
- 特殊的广播事件
day32_安卓基础之activity生命周期_receiver广播接收者相关推荐
- Android-Activity生命周期、广播接收者、服务
一.Activity 1.生命周期 在Activity3种状态切换的时候会自动执行一些生命周期方法 生命周期方法共有7个: onCreate, onStart, onResume, onPause, ...
- 安卓基础知识之Activity篇(一):Activity生命周期
安卓基础知识系列旨在简明扼要地提供面试或工作中常用的基础知识,让对安卓还不太熟悉的小伙伴更快地入门.同时自己在工作中,也没法完全记住所有的基础细节,写这样的系列文章,可以让自己形成一个更完备的知识体系 ...
- 安卓学习笔记06:Activity生命周期与启动模式
文章目录 零.学习目标 一.Activity生命周期 1.了解Activity生命周期 2.Activity生命周期简化图 (1)Activity存在与否 (2)Activity可见与否 (3)Act ...
- android基础 [超级详细android Activity组件解析(Activity综述,Activity生命周期,Activity启动--携带参数启动)]
1 章节目录 2 Android Activity综述 2.1 Activity怎么用 2.2 layout - 界面布局 2.3 Java - 控制界面 2.4 AndroidManifest.xm ...
- 安卓Activity生命周期相关
安卓Activity生命周期相关 activity作为安卓四大组件之一,是我们在开发中使用的最频繁的组件之一. 在这里就个人所了解的一些东西,和大家分享一下下.有错误之处,多多指正. 典型生命周期 首 ...
- 基础总结篇之一:Activity生命周期
子曰:溫故而知新,可以為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就完全掌握,那基本不大可能,所以我们需要经常回过头再仔细研读几遍,以领悟到作者的思想精 ...
- 【安卓开发 】Android初级开发(六)Activity生命周期
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setC ...
- 基础总结篇之中的一个:Activity生命周期
子曰:溫故而知新,能够為師矣.<論語> 学习技术也一样,对于技术文档或者经典的技术书籍来说,指望看一遍就全然掌握,那基本不大可能,所以我们须要常常回过头再细致研读几遍,以领悟到作者的思想精 ...
- Android Activity 生命周期和重要的相关函数(基础一)
总结: 1.oncreate 2.onstart 可见但不交互 3.onrestart 从其他界面重新调转过来 4.onresume 可交互 5.on ...
最新文章
- 每天一个linux命令(33):df 命令
- centos7 升级openssh7.4之后 报错
- Java-- String源码分析
- 《程序员面试金典》输出单层节点
- commons-lang的FastDateFormat性能测试
- python进程池pool_python多任务--进程池Pool
- 我的linux复习之一密码修改
- 运用计算机计算电力系统潮流分布时,电力系统【第四章:复杂电力系统潮流分布的计算机算法】...
- phalcon + nginx 混合模式配置
- 基于51最小系统的超声波测距
- centos7 yum安装maven_Linux安装tomcat、mysql 、Maven与Eclipse的整合、settings.xml
- 参数化测试 junit_JUnit参数化测试
- VMware workstaion上传虚拟机到VMware EXSI 5.5
- Lua IDE工具-Intellij IDEA+lua插件配置教程(Chianr出品)
- mysql数据库管理工具navicat for mysql怎么用
- 可视化大屏是什么?有哪些应用场景?
- golang go-redis和redigo的不同用法
- 正则系列之量词(Quantifiers)
- 基于单片机的升力检测仪系统设计
- 三菱4轴控制伺服案例,三菱PLC FX3U加三菱1PG定位模 块控制4个松下伺服,有完整的注释,结构清晰明了。伺服控制程序JOG HOME 定位 全部写成了功能块FB .你可以直接拿过去用