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/。横竖屏的布局文件名称保持一致。

  • 布局文件内容区别:

  1. 竖屏是LinearLayout,横屏是FrameLayout。

  2. 竖屏是android:gravity控制位置,横屏是android:layout_gravity

你可能感兴趣的:(GeoQuiz项目总结——第三章)