1412的第一篇博客

来源:互联网 发布:生死狙击手游刷枪 软件 编辑:程序博客网 时间:2024/06/05 16:58

学习笔记(一)

  • Android 生命周期中新activity调用过程
    A、B两个acticity, A中启动B,此时会先调用A中的A.onPause(),然后调用B的创建过程,包括onCreate(),onStart(),onResume(),最后会调用A的onStop()方法

    Android activity 的创建与销毁要经历七个过程, onCreate,onStart,onResume,运行,onPause,onStop,onDestroy七个过程,对应着6个回调方法

    onCreate: activity被创建,经常用来进行资源文件的加载和数据的初始化,例如setContentView()。

    onStart: activity变得可见,我们可以在这里进行设计UI变化的操作,例如注册涉及UI变化的broadcastReceiver,在OnStop中解除绑定,来保证activity处于可见过程中UI会发生期望的变化。

    onResume: 每次activity恢复或启动到前台运行时调用,从此activity能与用户进行交互,可以在这里进行网络资源的加载请求,还可以进行服务与监听器的绑定与初始化。总的来说,需要activity启动后自动进行的指令型操作都在这里进行。

    onPause: 每当acticity不在前台运行,即失去了与用户交互的能力,就会调用这个方法,通常在这里终结只和当前活动相关的组件生命,例如handler队列中的未发送的消息需要在此移除,依托于当前activity的服务需要在此停止等等,依托于当前activity存在,并且在启动其他activity后不会再用到的内容都可以在这里终结掉它们。

    onStop: 正如前面的onStart,onStop和它是一对,它们决定了activity可见的周期,所以这里会释放掉在onPause中由于UI可见问题而没有释放掉的资源。

    onDestroy: 当调用到这个方法时,activity被彻底杀死从栈中移除,此时需要手动释放一些容易由于此activity的引用导致的内存泄漏问题,如释放后台线程,关闭广播,释放持有其他activity引用的静态对象。

    finish()方法:将activity从activity栈中移除,但不会立即释放资源。

    onSaveInstanceState和onRestoreInstanceState用来保存与恢复状态,当activity由于异常结束并重新创建时调用,前者会对当前view的状态进行保存,并在后者调用时取出。当activity结束时会一层层如同事件分发一样地去保存对应的状态。两个方法执行的时间分别在onStart之后和onStop 之前。

原创粉丝点击