SDK接入必备常识——Activity的生命周期
Activity是Android系统中最重要的组件之一。为了方便理解,你可以认为它就是Android手机中你所看到的一个个界面。在一个android应用中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在SDK接入过程中,几乎每家渠道SDK都会需要在AndroidManifest.xml中配置渠道SDK对应的Activity等信息。所以,作为SDK接入的必要常识,我们有必要对Activity有个比较透彻的了解。
本篇文章,我为大家梳理下Activity的生命周期。一个界面(Activity),从创建到展现在用户面前,以及从一个界面(Activity)跳转到另一个界面(Activity),关闭一个界面(Activity)等, 这些界面(Activity)都经过了哪些生命周期。
先看Activity的生命周期图:
@1、Activity首次被创建的时候,会执行onCreate方法。
@2、当Activity能被用户看见的时候,会执行onStart方法。
@3、当Activity出现最上层并可以和用户交互(就是用户可以点击上面的按钮等操作),那么这个时候,会执行onResume方法。
@4、当用户打开了一个对话框,这个时候该Activity还是可见的,只是无法操作(交互),这个时候,会调用该Activity的onPause方法。
@5、当用户打开了一个全屏界面,或者跳转到了另一个全屏Activity时,该Activity已经完全不可见,那么会调用该Activity的onStop方法。
@6、当用户结束一个应用时,或者该Activity被销毁的时候,会执行onDestroy方法。
@7、当Activity出于onPause状态时,如果用户又切回到该Activity。那么会重新调用onResume方法。
@8、当Activity处于onStop状态时,并且该Activity还处于系统内存中没有被销毁,那么会调用该Activity的onRestart方法重新启动该Activity。
@9、当Activity处于onPause和onStop状态时,如果系统内存吃紧,那么随时都有可能被系统直接销毁掉。
这就是一个Activity的整个生命周期过程。
其实,做过界面开发的童鞋,可能知道,MVC模式是界面设计的一种经典模式。其中,Android中也采用了MVC设计模式。Android中,界面上的显示元素和结构,我们是通过xml格式的布局文件来表示,这个就是View;而Activity就是Control层,调用业务层的逻辑,控制布局文件和数据的展示。
同时,记得Android采用堆栈来管理Activity。Activity有四种状态:
活动状态,当Activity处于Stack(栈)顶时,就是手机当前的现实屏幕,这是 Activity就处于activity或者运行状态。
运行但是失去焦点,当Activity还处于运行状态时,但是屏幕是有另外一个Activity处于文档处于焦点状态,当前的Activity就处于pause。
停止状态,当Activity被另一个Activity完全覆盖的时候,就被停止了,其实就是虽然在运行,但是用户却看不见。
结束状态,当Activity处于pause或者stop时,系统可以结束 Activity,回收资源,这是Activity就是处于结束状态了。处于结束状态的是Activity,如果要使用户可见,只要重启才可以。
本文出自 U8SDK技术博客,转载时请注明出处及相应链接。
本文永久链接: http://www.uustory.com/?p=1543