day32_安卓基础之activity生命周期_receiver广播接收者

=========4大核心组件介绍

四大核心组件:

Activity(活动), broadcastReceiver(广播接收者), Service(服务), ContentProvider(内容提供者)

  1. activity的声明周期介绍&onCreate和onDestory方法的用处

 

记事本

 

 

 

 

  1. onstart和onstop的应用场景

 

 

 

 

 

  1. onRsume和onPause的应用场景

 

Android中第一个 核心的 组件

 

每次建一个工程 的时候, 都会 默认的建一个 MainActivity

 

 

onCreate在创建对象的时候调用

OnDestroy在对象销毁的时候调用

应用场景参考:

 

Onstart 在界面可见的时候被调用

OnStop在界面不可见的时候被调用

应用场景参考:

 

OnPause 当界面 处于 可见,但是 又 失去焦点这个 阶段的时候 会被 调用

onReumse 当界面 处于 可见 到 获得焦点这段 的时候 被 调用

打游戏: 暂停/继续

 

 

 

一个面试题:

请描述一下 activity的声明周期 ,以及各个生命周期的方法 有 什么应用场景?

 

  1. acitivity中的onResart的使用

 

home键恢复的时候使用

 

  1. 横竖屏切换的时候activity的声明周期

 

 

控制 横竖屏 切换的时候, activity的生命周期

默认的情况下, 一个activity的生命 周期 是这样的,在横竖屏切换的时候, 会销毁当前的activity, 然后在 重新去创建这样第一个activity

所以 当前这里的游戏 , 会影响 用户的感受 .

 

控制在 activity 创建的时候, 不要因为 横横竖屏切换等等一些因素 而影响到 activity 周期 周期

 

 

  1. 任务和栈的介绍

 

LauchMode

 

Task: 翻译过来叫做 任务, 维护了记录了 当前 应用的 内存空间 中, 有哪些 组件在运行着

 

Stack: 栈 , 栈的特点(后进先出 ) , 队列 (先进先出)

 

 

任务栈: 一种内存结构, 存储了 当前的android 应用 中的各个组件的 运行 状况 .

 

 

 

 

每一个activity都有自己的启动模式

 

  1. activity的标准启动模式和singeTop启动模式的介绍

 

启动模式 有 4 种 :

  • Standard: 标准的模式 -- 默认的模式

每次 收到 intent , 那么 就会 新创建 activity 的实例出来,放到 任务栈中

 

  • SingleTop: 单一顶部模式

如果发现当前的任务栈中的栈顶是 当前activity的实例, 那么就 直接使用 当前的activity的实例, 不再新创建.

如果当前栈顶不是 当前activity的实例, 那么就 创建..

 

源生的 mms的 编辑短信的 activity的 启动模式就是 singleTop.. 提高用户的感受, 可以很好的提示 用户 之前还有短信没有 编辑完..

 

  1. singleInstance启动模式的介绍

 

  • SingleTask: 单一任务栈模式

表示 当前的 activity 只会在 当前的任务栈中只有一个 实例了 ,

如果再次去尝试启动当前的activity, 那么 不会再次重新创建的当前的activity实例了 ,并且 如果当再次去尝试启动当前的acitivity的时候, 当前的activity不是处于任务栈的栈顶,会清空 当前处于 activity之上的哪些acitvity

应用场景:

 

如果一个activity启动的时候,占用的cpu的资源非常多, 非常耗 内存, 而手机中的内存又是非常珍贵的,那么这个时候 就 建议将 这样的activity的启动模式设置为 singleTask

 

例如 :

 

 

 

 

  • SingleInstance: 单一实例模式

单一实例 ---- 如果某个acitvity的启动模式设置为 SingleInstance ,那么 在整个 android 手机 就只会有一个 这样的activity的实例了

 

对于 一些 整个系统中,永远都只存 一个同样的界面的activity 就会声明使用这种启动模式

 

 

 

 

 

  • 始终以 secondActivity为基准
  1. 广播接收者的快速入门

 

也是一个核心的组件

 

专门用来接收广播的

 

第一步:

买个收音机

第二步:

装电池

第三步:

调节频道

 

 

具体代码实现步骤:

  1. 写个类,继承BroadCastReceiver的类 那么就 有了一个收音机
  2. 到 清单 manifest文件中进行 装电池 --- 配置 的事儿
  3. 调节频道--- 设置 接受的广播的类型

     

    1. 开机完成的广播接收者

    注意 , 步骤与之前是一样的, 但是 需要在 清单文件中, 添加这样一个

    权限 .

     

     

     

     

    可以用来 干什么 呢?

     

    统计用户信息

     

    1. ip拨号的原理实现

     

    12593 , 17951

     

     

     

    第一步: 写一个 广播接收者:

     

    第二步:

    到 清单文件中进行 配置

     

    第三步:

    添加相应 的权限

     

    那么最终在电话外拨的时候, 如果发现是拨打的长途电话...

     

    在前面加拨 17951

     

     

     

     

     

     

    1. 统计用户的数据

     

     

     

    1. 小作业

     

    收到 耳机线插入或者 拔出的 广播

     

     

    1. 自定义广播以及接受自定义的广播

     

     

     

     

    干掉MainActivity 程序的安装图标就会消失

     

    1. 自定义有序广播接收者

     

     

     

     

    1. 有序广播和无序广播的区别&有序广播中的各个参数作用

     

    有序广播可以在特定的接收者收到广播后 取消广播的继续发送, 可以 更改 广播的数据

     

    无序的广播不能去取消广播的发送. 不可以更改广播的数据

     

    1. 开发短信窃听器

     

     

     

     

    1. 接受特殊的广播事件

     

    在android操作 系统, 有一些 广播是经常 会发出来的, 对于这些经常会发出来的广播 ,android 系统中,谷歌工程师在设计的时候, 将其设计为 只能通过 代码去 注册这样的广播接收 者, 通过配置文件去 配置 是不好用的 .

     

    例如: 手机的 锁屏/解锁, 手机电量变化

     

     

    这也是一个面试题 ...

     

    作业:

  4. activity的生命周期 (必须会)

    Oncreate, onstart, on resume, onpause, onstop , ondestroy, on restart

     

    2.生命周期的方法的应用场景

     

  5. 启动模式:
  6. 手机横竖屏切换

    ConfigChanges: orientation|screensize|keyboard

    Orientation:

    格斗的例子

  7. ip拨号器
  8. 中央政府发蘑菇---有序广播
  9. 特殊的广播事件

     

     

     

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值