zoukankan      html  css  js  c++  java
  • 详解Android中的四大组件之一:Activity详解

    标题图

    Activity详解.png

    activity的生命周期

    Activity的生命周期.png

    activity的四种状态

    Activity的四种状态.png

    running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态。

    paused:暂停,处于失去焦点的时候,处于paused,可能是被如弹框一样遮盖,被通明的activity的放置到栈顶,paused一起状态都存在。

    stopped:处于stopped状态,是当前的activity被遮盖,是完全遮挡的那种,覆盖屏幕,一起的状态信息还是存在的。

    killed:activity被销毁,回收,一切的状态信息不存在了。

    activity的生命周期

    activity的生命周期

    activity启动 ->被创建时调用onCreate()->被启动,处于用户可见状态,但不能与用户交互onStart()->可与用户交互了onResume()

    点击Home 整个activity处于停止状态,可见,不能与用户交互onPause()->整个activity被停止,被完全覆盖,onStop()

    回到activity 处于由不可见状态到可见的状态onRestart()->onStart()-onResume()

    退出activity onPause()->onStop()->当前activity被销毁,回收,资源释放onDestroy()

    Android进程优先级

    Android进程优先级.png

    1. 前台进程 -Activte process
    2. 可见进程-Visible Process
    3. 服务进程 - Service process
    4. 后台进程 Background process
    5. 空进程-Empty process

    前台

    前台process是与用户交互的控件的应用程序,处于“活动”状态的Activity

    可见

    可见进程为activity可见,不属于前台,但不能与用户交互的进程。

    服务

    已经启动的Service

    后台

    后台的进程中Activity是不可见的,后台进程中没有启动任何的Service,即为后台进程。

    空进程,在资源需要的时候常常被杀掉。

    Android的任务栈

    App启动时,系统会创建一个任务栈,栈也被叫做Task。退出activity的时候,要清除任务栈,任务栈会保留每个activity的信息,所以要安全的保存任务栈。

    任务栈不是唯一的,也可有一个activity可以独享一个任务栈。

    正常模式下的栈是后进先出,在AndroidManifest.xml中启动,通过android:launchMode进行设置的,有四种模式standard、singleTop、singleTask、singleInstance

    Android的任务栈.png

    1. standard:默认,每次启动重新创建。每创建一个activity,都会创建一个onCreate()->onStart()->onResume()。每一次都重新创建会消耗资源。

    2. singleTop:栈顶复用模式,栈顶存在则不创建,如果不在栈顶就又要重新创建,检验的是栈顶是否存在,即使在第二个,不是栈顶,activity也要被重新创建。

    3. singleTask:检测整个任务栈,是否存在activity,如果存在就存放在栈顶,1)启动singleTaskActivity,会将该Activity置于栈顶,它上面的所有activity都会被销毁。2)其他AppsingleTask模式启动该Activity时,会创建一个新的任务栈,如果启动模式为singleTaskActivity已经在一个任务栈中,那么启动后,后台的这个任务栈将一起切换至前台。

    4. singleinstance:activity在整个系统当中有且只有一个实例,在任务栈只有一个activity,即是singleinstance

    scheme跳转协议

    scheme跳转协议为一种页面内跳转协议,跳转页面,根据H5页面跳转,跳转app等。

    结语

    • 本文主要讲解 详解Android中的四大组件之一:Activity详解
    • 下面我将继续对JavaAndroid中的其他知识 深入讲解 ,有兴趣可以继续关注

    • 小礼物走一走 or 点赞

    送❤

  • 相关阅读:
    洛谷 P4297 [NOI2006]网络收费
    bzoj 5072: [Lydsy1710月赛]小A的树
    树形背包
    loj #2071. 「JSOI2016」最佳团体
    bzoj 2427: [HAOI2010]软件安装
    bzoj 4987: Tree
    loj #2007. 「SCOI2015」国旗计划
    loj #2006. 「SCOI2015」小凸玩矩阵
    loj #2020. 「AHOI / HNOI2017」礼物
    loj #547. 「LibreOJ β Round #7」匹配字符串
  • 原文地址:https://www.cnblogs.com/dashucoding/p/11932546.html
Copyright © 2011-2022 走看看