一、关于生命周期中各种状态转换的回调方法调用
不必实现所有的生命周期方法,实现多少取决于你的Activity的复杂程度。无论如何理解每一个生命周期回调方法,并且通过实现特定的回调方法使你的APP能实现像你期望的表现都是很重要的。正确地实现你的Activity生命周期方法,确保你的APP有好的表现包括以下几点:
1、如果用户正在使用你的APP的时候接到一个电话或者切换到另一个APP,APP不能崩溃
2、在用户不再主动使用APP时,不要消耗宝贵的系统资源
3、如果用户离开你的APP并且在一段时间之后返回该APP,不要丢失用户的进度
4、屏幕在横屏和竖屏之间切换的时候,APP不能崩溃或者丢失用户的进度
Activity会在Created,Started,Resumed,Paused,Stopped和Destroyed这六个状态里转换。但是只有Resumed,Paused和Stopped这三个状态可以是静态的。
Resumed
Activity处于设备前台并且用户可以和它互动(也可以理解为“running”正在执行的状态)
Paused
Activity被另一个Activity挡住其中的一部分——在前台的另一个Activity是半透明的或者没有覆盖整个屏幕。Paused的Activity不接受用户输入并且不执行任何代码
Stopped
Activity被完全隐藏掉,用户看不到该Activity。即Activity处于后台中。在Stopped的状态中,Activity实例和他的所有像成员变量这样的状态信息会被保存,但是它不能执行任何代码。
其他的状态 (Created和Started)都是短暂的,系统会快速地通过调用生命周期回调方法转换到他们的下一个状态。在系统调用onCreate()之后,系统会马上调用onStart(),紧跟着调用onResume()
二、指定APP的Launcher Activity(APP入口)
APP的主Activity必须在manifest的<intent-filter>标签中声明MAIN action和LAUNCHER category,例如:
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>