zoukankan      html  css  js  c++  java
  • Android四大组件之Activity的生命周期

    Activity作为Android程序中的四大组件之一,它和大部分的组件一样都是有自己的生命周期,而Activity的生命周期总的分为五种状态以及七个方法

    只大致讲 五种状态七个方法

    五种状态:

    在Activity生命周期即从创建到销毁全过程中,分为五种状态分为启动、运行、暂停、停止和销毁。

    需要注意的是:Activity活动时不会在 启动 和 销毁 这两种状态下停留下来有活动,因为这两种状态作为Activity活动的过渡状态。所以在Activity触发启动操作之后马上就会进入运行状态不会停留,而Activity触发到要销毁操作时马上就会被清理内存。

    1. 启动状态(你点下去之后):Activity的启动状态只是瞬间的事情,在不出意外的情况下,在Activity触发启动操作之后就会立即便会进入到运行状态。

    2. 运行状态(当前手机的屏幕是你运行的APP):Activity在这个状态下就是常见的与用户交互时的状态。它位于屏幕的最前端,是可以看见的,焦点也是停留在本状态的Activity。

    3. 暂停状态(当前APP中出现其他句柄的控件,并且一定需要点击才可以返回):通常来说,Activity对于用户来说仍处于可见状态,但是焦点不在此状态的Activity上,用户对此状态的Activity操作不会产生响应。比如,当Activity上突然跳出了一个对话框,而焦点就会从Activity转移到对话框上,所以Activity失去焦点但是对用来说仍是可见的。但是在不处理对话框的情况下无法对Activity进行操作。此时的Activity就是处于暂停状态。

    4. 停止状态(HOME键切换为其他应用):当用户操作从Activity01跳转到Activity02时,Activity02就会覆盖掉Activity01,而Activity01就会完全不可见,焦点也会从Activity01跳转到Activity02,它就是处于停止状态了,但是它的内存仍会保存在本Activity中还没有被清理。Activity02处于返回栈的栈顶,而Activity01就会往返回栈的栈底压。

    5. 销毁状态(清理应用的时候):当Activity处于销毁状态时,就会把Activity中的内存清空,并且把Activity清除返回栈。


    七个方法:

    在Activity的生命周期全过程中会依次执行七个方法,分为onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()、onRestart()方法。

    1. onCreate()方法:在Activity创建的时候调用此方法,通常在此方法中做一些初始化操作。

    2. onStart()方法:在Activity可见之前执行,在执行之后就是Activity进入可见的运行状态。

    3. onResume()方法:在Activity获取得到焦点开始可以与用户进行交互的时候调用。

    4. onPause()方法:当前Activity焦点被其他Activity夺取,或者说被覆盖、锁屏时调用。

    5. onStop()方法:在Activity对用户不可见时调用。

    6. onDestroy()方法:在Activity要销毁时调用。

    7. onRestart()方法:在Activity从停止状态再次获取得到焦点启动时调用。

    一个Activity的流程如下:

    运行依次的执行顺序为onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDestroy()

    当前APP中其他句柄出现的时候:在Activity执行onPause()方法会暂时失去焦点,当焦点重新回到Activity时就会重新执行onResume()方法,若是在进程被杀死的情况下就会重新执行onCreate()方法

    切换APP应用的时候:在Activity执行onStop()方法时会失去焦点,但是用户操作回到本Activity时就会执行onRestart()方法使得本Activity回到最前端,若是在进程被杀死的情况下就会重新执行onCreate()方法

    参考文章:https://blog.csdn.net/qq_41910568/article/details/84963169

  • 相关阅读:
    关于echarts图表在tab页中width:100%失效的问题
    easyui
    小程序中点击事件传参
    微信小程序实现滚动分页加载更多
    使用jquery如何获取现在时间、并且格式化
    只需两步获取任何微信小程序源码
    怎样修改已经审核通过发布成功的微信小程序
    小程序开发swiper如何实现点击图片自定义跳转
    微信小程序如何提交审核并发布?发布问题:小程序只支持https访问
    小程序填坑之路—读取用户信息、缓存其数据、读取其数据
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12598966.html
Copyright © 2011-2022 走看看