Android四大组件知识点总结

预备知识

1. Intent

Intent是信使,负责完成Android四大组件之间的信息传递,同类、不同类的组件无法直接传递对象,一旦需要沟通只能通过Intent(不建议通过静态变量或静态方法传递数据,容易造成数据异常、内存泄露等问题)。

2. 生命周期

生命周期是指组件的实例对象从创建到销毁可能会被系统调用的一些方法,每个方法的调用都有特定的条件,可以根据需要重写生命周期方法来达到在某些特定时刻执行特定任务的目的。生命周期方法不建议自行调用,应由系统管理。

3. 注册组件

四大组件都需要通过项目中的AndroidManifest.xml文件进行静态注册后才可正常使用,其中BroadcastReceiver可以在其他组件中动态注册(Android6.0版本开始限制静态注册,除少部分广播如开机广播之外,大部分广播的静态注册是无效的)。

4. 响应时间

应用主线程未在规定的时间内执行完任务,系统会报ANR(应用程序无响应)错误,因此应将耗时任务交由子线程完成,具体的限定时间和执行位置如下:

  1. Activity:5秒内执行完成,包括各个生命周期方法、View的触摸点击事件、输入输出操作等。
  2. Service:20秒内执行完成,主要是各个生命周期方法。
  3. BroadcastReceiver:10秒内执行完成,主要是onReceive()方法。

1. Activity

1.1 基本知识

概念

Activity直译为“活动”,在应用中的一个Activity可以理解为一个界面,可以包含各类布局与控件展现丰富的可视化效果,主要用于和用户进行交互。一个应用必须通过Activity来启动和运行,一个应用可以只有一个Activity,也可以由多个Activity组成。

应用中的所有Activity都被系统保存在TaskStack任务栈中,一般一个应用只有一个TaskStack任务栈,但也可以调整Activity的启动模式来开启多个TaskStack任务栈。既然叫栈,自然是有栈的特性,当前可交互的Activity在栈顶,先启动的Activity在栈底,栈顶Activity出栈则底层Activity被用户可见并开始交互,任务栈清空时应用结束。

作用

Activity是应用最直观的入口,一个应用可以没有其他组件,但是不能没有Activity。用户的IO操作都由Activity进行处理,应用的数据展示、吸引人的动画、优秀的界面设计等都需要Activity进行展示,用户只关心看得见的东西,看不见效果再好的应用都没用户量,再牛逼的应用最少也得有文字展示一下不是吗?

生命周期

Activity的生命周期已经是翻烂的书了,最基础的知识点,千万不可忽视。首先就得上个图:
Activity生命周期
Activity状态转换
生命周期大多是成对出现的:

  1. onCreate()onDestroy(),生命的起始与终结。
  2. onStart()onStop(),界面的可见与否。
  3. onResume()onPause(),是否可进行交互。

详细介绍:

  1. onCreate():第一个调用的方法,通常在该方法中加载布局文件、初始化资源、注册事件与BroadcastReceiver等较重的任务。
  2. onStart():在onCreate()方法后调用,通常在该方法中处理UI的显示控制逻辑,任务不可过重,用户此时无法交互也无法直接看见当前Activity
  3. onResume():在onStart()方法后调用,通常在该方法中进行简单的数据处理与UI控制,如开始动画,只执行轻量任务,方法执行后用户可进行交互并可直接看见当前Activity。此时,当前Activity进入Resumed状态(运行状态),当一个Paused状态的Activity重新位于栈顶时(从其他Activity返回),会再次调用该方法。
  4. onPause():当前Activity被其他Activity覆盖时调用,让当前Activity进入Paused状态(暂停状态),此时当前Activity可见但不可交互。通常在此方法中进行简单的数据处理与UI控制,如暂停动画,只执行轻量任务。内存不足且无其他优先级更低的Activity时,当前Activity可能会被销毁。当前Activity重新位于栈顶时(从其他Activity返回),会调用onResume()方法。
  5. onStop(): 当前Activity被其他Activity完全覆盖(若上层Activity透明或半透明时,只调用onPause()方法)时调用,当前Activity进入Stopped状态(停止状态),当前Activity不可见。通常在此方法中处理UI的显示控制逻辑,任务不可过重。内存不足且无其他优先级更低的Activity时,当前Activity可能会被销毁。还行当前Activity重新位于栈顶时(从其他Activity返回),会调用onRestart()方法。
  6. onRestat(): 当一个Stopped状态的Activity被返回时,该方法被调用,之后再调用onStart()方法和onResume()方法进入运行状态。
  7. onDestroy(): 当前Activity</
  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值