正在使用一个activity,突然来了一个电话 这时你的应用要具备处理这些突发事件的能力 运行状态。activity处于屏幕最前面的时候。响应用户的处理事件 停止状态。完全覆盖 暂停状态。activity上面有另外一个activity。而仍然可见。 回收activity。是系统根据内存状态来进行的。 当Activity从一种状态到另一种状态,会调用下面的保护方法来通知这种变化 oncreate onstart onrestart onresume onpause onstop ondestroy 只要系统需要内存,就会把停止和暂停的activity干掉 系统的主题框 <activity android:theme="@android:style/Theme.Dialog" 完整生命周期循环。从创建到销毁 可视生命周期循环。当onstart到onstop 前台生命周期循环。onresume到onpause 处理突发事件,用到的方法 onSaveInstanceState() onRestoreInstanceState() 当应用遇到意外情况。如内存不足或者 用户直接按home。由系统销毁一个activity onSaveInstanceState就会被调用 activity由运行状态进入暂停状态或停止状态也会调用该方法 但当用户主动销毁一个activity时。。按返回键 onSaveInstanceState就不会被调用。因为在这种情况下 用户的行为决定了不需要保存activity的状态 onSaveInstaanceState适合用于保存一些临时性的状态 而onPause适合于数据的持久化保存 当屏幕的方向发生改变,activity会被销毁并重新创建 如果想在activity被销毁前缓存一些数据。并在activity 被重新创建后恢复缓存的数据,可以重写activity的onsaveinstanceState和 onRestoreInstanceState方法 public class PreferencesActivity extends Activity{ private string name; protected void onRestoreInstanceState(Bundle savedInstanceState){ name=savedInstanceState.getString("name");//被重新创建后恢复缓存数据 super.onRestoreInstanceState(savedInstanceState); } protected void onSaveInstanceState(Bundle outState){ outState.putString("name","liming");被销毁前缓存一些数据 super.onSaveInstanceState(outState); } } 横竖屏幕切换 当屏幕方向或键盘显示隐藏,变化时都会销毁当前activity 创建新的activity,如果不希望重新创建activity实例时 可以配置 <activity android:configChanges="keyboardHidden|orientation"/> 在android中,应用的响应性被活动管理器 Activity Manager和窗口管理器Window Manger两个 系统服务所监视 当用户触发事件。但应用五秒内未响应。则会弹出 ANR application no response对话框