Android编程权威指南 - 第3章 Activity的生命周期

Activity的状态种类

  • onCreate():创建
  • onStart(): 启动
  • onResume():重启
  • onPause():暂停
  • onStop():停止
  • onDestroy():销毁

常规操作的状态变更

  • 启动APP:onCreate -> onStart -> onResume
  • 后退健:onPause -> onStop -> onDestroy
  • 主屏健: onPause -> onStop
  • 按主屏键 -> 启动APP: onStart -> onResume
  • 最近应用: onPause -> onStop
  • 最近应用中点x: 没有任何记录,app并没有被销毁
  • 最近应用中向左滑动: onDestroy
  • 没有被销毁的Activity会被系统自动回收,但什么时候回收,没有人清楚

屏幕旋转

  • 屏幕旋转时,Activity先销毁,后重新创建。这意味着,当屏幕旋转后,原有的数据无法保存。
  • 如果需要保存,则需要使用将数据保存在Bundle对象中,这个对象是onCreate函数创建时就已经传入的。
    protected void onCreate(Bundle savedInstanceState)
  • Bundle是一个key-value类型的对象,如果需要将数据保存,则需要复写onSavedInstanceState函数
@Overridepublic void onSaveInstanceState(Bundle savedInstanceState) {   
      super.onSaveInstanceState(savedInstanceState);    
      Log.i(TAG, "onSavedInstanceState");    
      savedInstanceState.putInt(KEY_INDEX, mCurrentIndex);
}
  • 引用时则需要在onCreate函数中,将值取出并赋值
if (savedInstanceState != null) {    
    mCurrentIndex = savedInstanceState.getInt(KEY_INDEX, 0);
}

横屏时的资源文件

  • layout布局文件:竖屏的布局文件放在/res/layout/中。横屏时,需要新建一个文件夹放置对应的layout文件,目录地址是/res/layout-land/。横竖屏的布局文件名称保持一致。
  • 布局文件内容区别
    1. 竖屏是LinearLayout,横屏是FrameLayout。
    2. 竖屏是android:gravity控制位置,横屏是android:layout_gravity
    
          
                  

                   

               

日志记录的级别与方法

  • ERROR:Log.e(TAG, msg)
  • WARNING:Log.w(TAG, msg)
  • INFO:Log.i(TAG, msg)
  • DEBUG:Log.d(TAG, msg)
  • VERBOSE:Log.v(TAG, msg)
  • verbose级别的最低,TAG是自定义的记录在日志种的标识,msg是记录的内容
  • 可以通过String.format对输出格式进行格式化操作

你可能感兴趣的:(Android编程权威指南 - 第3章 Activity的生命周期)