其他零散学习-Android四大组件

来源:互联网 发布:淘宝网店开店培训 编辑:程序博客网 时间:2024/05/21 22:30

参考网址:一个帖子学会Android开发四大组件
  安卓四大组件包括活动(Activity)、服务(Service)、广播(Broadcast)和内容提供者(Content Provider)。下面开始一一学习。
  (1)活动的生命周期
  Android的活动周期可以用下面的图表示:
这里写图片描述
  对这幅图的具体的理解我们还要从下面三种情况出发:
  ①、当一个活动被创建:onCreate()->onStart()->onResume()
  (所以我一开始认为onResume从字面上理解是在活动“重新开始”的时候才会执行,其实在活动一开始创建的时候就会执行)总之,活动要到用户交互层面必须要执行onResume()
  ②、当一个活动中启动另一个活动
  首先第一个活动启动,然后启动第二个活动:
  第一个Activity onPause() -> 第二个Activity onCreate() -> 第二个Activity onStart() -> 第二个Activity onResume() -> 第一个Activity onStop()
  然后返回到第一个Activity:
  第二个Activity onPause() -> 第一个Activity onRestart() -> 第一个Activity onStart() -> 第一个Activity onResume() -> 第二个Activity onStop() -> 第二个Activity onDestroy()
  总之另一个活动的启动是在第一个活动执行onPause()和onStop()之间。
  ③、当一个活动被销毁:
  情况1:onPause() -> 活动销毁
  情况2:onPause() -> onStop() ->活动销毁
  情况3:onPause() -> onStop() -> onDestroy() -> 活动销毁
  为什么有这三种情况呢?这是由系统的内存状态决定的。如果系统内存比较吃紧,可能不会等到执行onStop()或onDestroy()完才结束,而会提前销毁这个活动,以腾出空间给其他活动使用。但是不管怎样,活动销毁的时候onPause()是一定会执行的,所以开发者应该把保存一些重要的信息写在onPause()中
  (2)活动的启动模式
  这四种模式具体的启动方式详见活动的启动模式,但还要注意的是Intent的启动方式还受到flag的影响(通过intent.addFlags(flag)添加)。比如添加了FLAG_ACTIVITY_CLEAR_TOP,那么在启动这个活动的时候,如果这个活动在栈中已经存在,就会把在它之上的活动全部销毁(有点像singleTop的启动方式)。关于其他的flag的解释请看Android Intent.FLAG_NEW_TASK详解,包括其他的标记的一些解释
  (未完待续)

0 0