android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序
大家好,又见面了,我是你们的朋友全栈君。
Android在界面跳转的时候,比如从Activity A 跳回 Activity B,并不是先执行A的onDestroy,而是执行完A的onPause之后就立即跳回Activity B里的onResume。在执行了Activity B 的onResume之后一两秒甚至更长一点的时间才执行Activity A里的onDestroy。
这样的处理机制应该是为了能够立即响应用户的操作。但是这样子的话,如果Activity A在运行前和运行后都要进行预处理和反预处理的话,便会存在问题。比如一个能播放加密视频的播放器里,如果把视频的解密操作放在onCreate里,把视频的加密操作放在onDestory里。此时Activity A便是播放视频的界面,Activity B便是播放列表/主界面。在Activity B点击相应的视频c进入到Activity A里,在onCreate里执行解密使得视频可以播放。当按返回键的时候先执行Activity B的onResume,所以在视频c加密前就跳回了Activity B的界面,因此在此时还能点击进入Activity B。假设在这个时候(Activity A的onDestroy还没被调用,但因为Activity B的onResume已运行完毕,所以可以跟Activity B交互)用户点击视频c,再次进入Activity A,则Activity A在onCreate中解密视频c(此时视频c是已经加密过的)。那么,如果加密函数不和解密函数等价的话,且二次解密不会使视频回复到原视频的话,则这个视频经过二次解密,就已经成为废视频了。
所以,对时间要求和Activity是否获取焦点密切相关的操作,不能放在onCreate和onDestroy里,而应该考虑放在onResume和onPause里。而像上述举的例子,如果是使用surfaceView来播放视频的话,也可以考虑在surfaceHolder.addCallback里的new Callback()的实现中的surfaceCreated和surfaceDestroyed两个函数里分别实现。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137352.html原文链接:https://javaforall.cn
相关文章
- 如何在Android平台GB28181接入终端实现语音广播和语音对讲
- 基于chromium for android开发Android浏览器
- 代码加密 android,Android 开发怎样做代码加密或混淆「建议收藏」
- android activity自动跳转,Android activity跳转之finish()方法的作用
- Android面试题集合[通俗易懂]
- android sdk根目录,Android SDK位置
- android短信验证码方案,Android之短信验证码
- Android preference_android studio preview
- Android n_android 反编译
- Android :ScaleAnimation「建议收藏」
- Android resource linking failed_android sdk location should not
- android跳转到相册需要权限,Android打开相册获取图片路径[通俗易懂]
- eclipse中android开发_Android开发教程
- 技术实操| 自有App如何引入小游戏(Android篇)
- 【Android 性能优化】应用启动优化 ( 安卓应用启动分析 | ActivityThread 主函数分析 | 应用初始化 | 启动优化项目 )
- 【Android 安全】DEX 加密 ( Application 替换 | 判定自定义 Application 存在 | 获取 ContextImpl 对象 )
- 【错误记录】Android Studio 编译报错 ( Gradle 下载错误导致 Failed to open zip file 报错 )
- 【Android 逆向】ELF 文件格式 ( ELF 程序头入口大小 | ELF 程序头入口个数 | ELF 文件节区头入口大小 | ELF 文件节区头入口个数 | 字符表序号 )
- 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )
- 【Android 逆向】代码调试器开发 ( ptrace 函数 | 向进程内存写出数据 )
- 【Android 逆向】类加载器 ClassLoader ( 加载 Android 组件的类加载器 | 双亲委派机制实例分析 )
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 中根据 File 加载 DexFile | loadDexFile 分析 )
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )
- 【Android Gradle 插件】build.gradle 中的 android 配置 ( 配置项 | compileSdkVersion 配置 | buildToolsVersion 配置 )
- Android 拨打电话的代码详解编程语言
- 施密特称Android比iPhone更安全 遭听众嘲笑
- android自定义toast(widget开发)示例
- Android开发中避免应用无响应的方法(ApplicationNotResponding、ANR)
- Android提高之蓝牙隐藏API探秘