详解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 点赞

送❤

posted @ 2018-08-07 05:07  达达前端  阅读(200)  评论(0编辑  收藏  举报