activity几种状态

前台状态:

通俗的说就是可以看到,且可以操作(有焦点)的状态

可视状态:

即可以看得见(没有被完全遮挡),但是没有焦点,不可以触摸操作;比如躲在对话框后面的activity

后台状态:

backgroudstate

已经看不到了,系统可以将这个进程杀死来回收内存。如果在这种状态下activity被系统杀死了,那么在用户重新打开这个activity的时候,它的onCreate方法会使用之前onSaveInstanceState(Bundle)保存的状态数据,来让自己恢复到之前的状态

空进程状态:

一个没有持有任何activity和任何应用组件的进程,比如Services或者广播接受者,当内存不足的时候,它们将会被先杀死并回收。

也就是说onSaveInstanceState(Bundle)会在activity转入后台状态之前被调用,也就是onStop()方法之前,onPause方法之后被调用;我们都知道在默认情况下,在旋屏之后,activity会重新经历一次生命周期,下面的log就是在点击旋屏之后的执行顺序:

activity状态保存:安卓3.0开始,应用只有在onstop()方法返回之后被杀死也就是说在执行完onStop()方法之前,应用都不可能被杀死你应该在onPause()方法中去存储那些持久性的数据,比如用户的输入等。onSaveInstanceState(Bundle)将在activity转入“background state后台状态”之前被调用,能让我们存储一些activity的动态的状态值到Bundle对象中,以便在之后调用onCreate(Bundle)方法时用到。

修改AndroidManifest.xml,把该Activity添加android:configChanges="orientation",执行横竖屏切换

onSaveInstanceState-->

onPause-->

onStop-->

onDestroy-->

onCreate-->

onStart-->

onRestoreInstanceState-->

onResume-->

6、再执行横竖屏切换,发现不会再打印相同信息,但多打印了一行onConfigChanged onSaveInstanceState-->

onPause-->

onStop-->

onDestroy-->

onCreate-->

onStart-->

onRestoreInstanceState-->

onResume-->

onConfigurationChanged-->

7、把android:configChanges="orientation" 改成android:configChanges="orientation|keyboardHidden",执行横竖屏切换就只打印onConfigChanged onConfigurationChanged-->

8、执行步骤4

onConfigurationChanged-->

onConfigurationChanged-->

总结:

1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次

2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次

3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法

activity状态保存在onPasue()中

图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【Android Activity】 什么是 Activity? 四大组件之一,通常一个用户交互界面对应一个 ac...
    Rtia阅读 3,852评论 3 18
  • 一、Activity创建、启动和关闭1.创建 Activity2.在清单文件中声明3.启动4.结束二、Activi...
    叛逆的青春不回头阅读 687评论 0 1
  • 学习资料: Android群英传 Android开发艺术探索 Activity是与用户交互的第一接口,感觉说是四大...
    英勇青铜5阅读 2,567评论 15 41
  • Activity简介 Activity是Android一个非常重要的用户接口(四大组件之一),是可见的,主要是用户...
    艾曼大山阅读 505评论 0 3
  • 刚刚入冬,北京已下了场大雪,气温也跟着骤降。前几天还展露着头角的绿叶,立刻缩回头去,就连小区里常常出没在车棚一带的...
    陈大仙儿_英姐阅读 256评论 0 2