GeoQuiz项目总结——第三章
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函数
public void onSaveInstanceState(Bundle savedInstanceState){
super.onSaveInstanceState(savedInstanceState);
Log.i(TAG,"onSavedInstanceState");
savedInstanceState.putInt(KEY_INDEX, mCurrentIndex);
}```
- 引用时则需要在onCreate函数中,将值取出并赋值
横屏时的资源文件
-
layout布局文件:竖屏的布局文件放在/res/layout/中。横屏时,需要新建一个文件夹放置对应的layout文件,目录地址是/res/layout-land/。横竖屏的布局文件名称保持一致。
-
布局文件内容区别:
-
竖屏是LinearLayout,横屏是FrameLayout。
-
竖屏是android:gravity控制位置,横屏是android:layout_gravity