Activity
来源:互联网 发布:excel不能导入数据 编辑:程序博客网 时间:2024/06/11 05:42
一、简述一下Activity的生命周期
- 首先在回答这个问题之前,我们先来说一下什么是Activity。
- Activity是安卓中与用户进行交互的接口,它提供了一个界面,可以让用户进行点击、滑动等一系列操作。
- 在了解了activity是什么以后,我们还必须了解一下activity的四种状态
- running状态:这时activity处于活跃状态,用户可以与其进行交互,可以进行点击、滑动等操作,界面会做出响应。
- pause状态:这时activity处于可见状态,但是失去触摸的能力。一般activity被一个透明的activity或者非全屏的activity覆盖,此时被覆盖的activity就处于pause状态。如果内存紧张,会被系统回收。
- stop状态:此时的activity处于完全不可见状态。一般是被另一个activity完全覆盖时,被覆盖的activity处于的状态。如果内存紧张,会被系统回收。
- killed状态:此时的activity已经被系统回收,它保存的信息以及成员变量都会被销毁。
在了解了以上内容以后,我们就可以来说一下activity的生命周期了。
activity一共有7个生命周期方法。
- 当activity启动的时候,它会经过如下生命周期方法,依次是:onCreate()–>onStart()–>onResume()
- onCreate():一般是完成界面以及数据的初始化工作,是activity启动时第一个被调用的方法。
- onStart():此时的activity处于可见状态,但是还不可以与用户进行交互。
- onResume():此时的activity已经完全完成加载动作,用户可以对其进行滑动、点击等操作。
- 当点击Home键返回主界面的时候,此时的activity处于不可见状态了,它会经过以下生命周期方法:onPause()–>onStop()
- onPause():此时activity还是处于可见状态的,但是已经失去与用户进行交互的能力了。与之对应的是onResume()方法。
- onStop():此时的activity处于完全不可见状态了。
- 再次返回原Activity,由于之前已经缓存过activity,所以再次回来不会走onCreate()方法,它的生命周期方法如下:onRestart()–>onStart()–>onResume()
- onRestart():从缓存中重新加载activity会走此方法。
- 退出activity,它会走如下生命周期方法:onPause()–>onStop()–>onDestroy()
- onDestroy():走到该方法表示activity已经被销毁了,它的成员变量等已经被系统回收了。
二、Android任务栈
任务栈是后进先出的栈结构,Android通过任务栈可以有序管理每一个Activity。任务栈并不是唯一的,一个App中可以有多个任务栈,但是,在某些情况下,一个Activity也可以独享一个任务栈。
三、activity有几种启动模式,各有什么区别?
1.Standard模式 :每次启动Activity都会创建一个Activity实例,加入任务栈中,不会考虑任务栈中是否有相同的Activity。较为消耗资源。
2.SingleTop模式 :栈顶复用模式,如果新创建的Activity与当前的Activity一致,处于栈顶的话,就不会创建新的Activity,而是复用栈顶的Activity。
3.SingleTask模式 :任务栈复用模式,在新建Activity之前会检测任务栈中是否有相同的Activity,有的话直接把Activity移到栈顶,这个Activity以上的Activity都会被移除和销毁;没有就新建一个。
4.SingleInstance模式 :在整个系统中,有且只有一个实例,而且这个Activity独享任务栈。
四、Android进程优先级
1.前台进程 :处于前台正在与用户进行交互的Activity,或者在前台绑定的Service。
2.可见进程 :可见但不可交互的Activity。
3.服务进程 :在后台开启的Service就是服务进程。
4.后台进程 :当处于前台的Activity,被按下Home键之后,该Activity会变成后台进程,但后台进程不会被立马销毁,系统会根据内存情况进行相应的回收。
5.空进程 :表示没有活跃的组件,只是出于缓存的目的而保留,可被随时收回。
五、Scheme跳转模式
android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉app跳转哪个页面,可以通过通知栏消息定制化跳转页面,可以通过H5页面跳转页面等。
先总结这么多吧,后面肯定会有补充,欢迎大家分享自己在面试过程中遇到的有关activity的有关问题,可以留言告诉我,我会加到博客中去。
- Activity
- Activity
- Activity。。。
- Activity
- Activity
- Activity
- Activity
- Activity
- Activity
- Activity
- activity
- Activity
- Activity
- activity
- Activity
- activity
- activity
- activity
- STM32学习笔记4:外部中断
- Linux系统编程——文件描述符的复制:dup()和dup2()
- db2数据库用户赋权
- 数据库事务隔离级别
- hadoop学习笔记-单节点配置
- Activity
- 合并两个排序的链表java实现
- Java实现多文件上传
- Android关于自定义ViewGroup,onMeasure的一些实验结论。
- 本地系统跟线上代码有冲突,数据库报错进不去
- 深度学习在 CTR 中应用
- Linux系统编程——进程的介绍
- 外网访问本地服务链接
- 这就是OPPOr11为什么要出定制版的原因,粉丝们有福利了