Android基础--Activity

来源:互联网 发布:城市安防监控网络 编辑:程序博客网 时间:2024/04/30 07:55

一门技术的基础知识是掌握一门技术的起点和支撑。许多基础知识需要我们不断的回顾。

Activity是Android的四大组件之一,也是我们最长用到的组件。熟练的使用的Activity我们Android的最基本功。使用Activity时最常涉及到的知识有

   Activity生命周期 (7个状态方法、几种状态、数据缓存)

   Activity启动模式

   Activity使用技巧

(一)Activity的生命周期

          1、一个完整的周期路线 : onCreate() -> onStart()-> onResume() -> onPause() -> onStop() -> onDestroy()

             这是一个完整无特殊情况的生命周期方法调用,没有涉及到onRestart()方法。

           具体方法逻辑可以看下面的生命周期图(自己总结)


要理解这些方法的调用次序和影响就要理解Activity的几种状态:不可见、可见不可操作、可见可操作

         当我们启动一个Activity,直到Activity显示出来,后台日志打印如下


              当Activity跳转到另一个Activity时

          

           可以看到当在一个Activity中启动另一个Activity时,先是执行A的onPause() 然后时B的onCreate() ->onStart() ->onResume 最后 执行A的onStop()。

          这个次序非常清晰的对应到生命周期的状态和方法的对应关系。

          现在看一下一个完整的两个Activity交互的方法调用流程A B(A启动B,B退回到A)

        可以看到在A和B的交互中,A或者B的生命周期方法并不是连贯执行的,这个可以和Activity结合起来。

   A启动B的一个完整流程:A onPause() (执行后A可见但不可操作)->B onCreate() ->B onStart() -> B onResume() (B可见可操作) ->A onStop(A不可见)

  B退回到A的一个完整流程:B onPause() (执行后B可见但不可操作)->A onRestart() ->A onStart() -> A onResume() (A可见可操作) ->B onStop(B不可见) -> B onDestroy()

     介绍:A 启动到B的时候,先是A失去焦点(可见不可操作)然后开始B的启动流程,当B达到可见可操作的时候再执行A的onStop将A变为不见也不可操作。但不会执行A的onDestroy

     Activity的栈,Android专门有存放Activity的栈,目前我们看到的Activity在栈顶,当新启动一个Activity就会继续进入到栈顶,而回退,则是将栈顶的Activity退出,回到下一个Activity。

   Activity依然在栈内时,不会执行onDestroy

0 0
原创粉丝点击