android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序

android onresume函数,Android界面跳转时候onDestroy和onResume的调用顺序Android在界面跳转的时候,比如从ActivityA跳回ActivityB,并不是先执行A的onDestroy,而是执行完A的onPause之后就立即跳回ActivityB里的onResume。在执行了ActivityB的onResume之后一两秒甚至更长一点的时间才执行ActivityA里的onDestroy。这样的处理机制应该是为了能够立即响应用户的操作。但是这样子的话,如…

大家好,又见面了,我是你们的朋友全栈君。

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.net/137352.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java构造函数

    java构造函数

    2021年9月29日
    41
  • py2exe用法_py import

    py2exe用法_py import使用pyinstaller,真是受够了,各种bug,各种莫名其妙的情况,也是够了使用py2exe,学习的时候麻烦,但是打包时候真的太方便了安装py2exe,网址http://www.py2exe.org/选择对应的版本下载;撰写setup.py文件`#–coding:utf-8–importpy2exefromdistutils.coreimportsetupsetu

    2025年10月21日
    4
  • ajax长轮询 spring mvc,springmvc ajax 长轮询

    ajax长轮询 spring mvc,springmvc ajax 长轮询前台代码:$(function(){functionpoll(){varparam={“searchType”:”1″,”key”:”0100008″,”timestamp”:”1409382910″,”sign”:”123″};$.ajax({type:”POST”,contentType:”application/json;charset=utf-8″,url:”xxxx”,da…

    2022年10月10日
    3
  • Pycharm怎么改背景颜色(超详细)「建议收藏」

    Pycharm怎么改背景颜色(超详细)「建议收藏」1.首先打开Pycharm,点击file(文件),在点击settings(设置)点击Editor(编辑器),点击ColorScheme(色彩方案),再点击ConsoleColors(控制台颜色)打开控制台颜色之后,看Scheme(方案),下拉找到你自己喜欢的颜色,在下面的框框里面可以看到你换好的颜色的样子,随后再点击OK。最后再点击yes,我们的背景颜色就换好了哈哈哈哈哈希望可…

    2022年6月20日
    58
  • Git配置账号信息

    Git配置账号信息在前面我们已经简单的说了一下Git是什么,用来干嘛什么,他与SVN的区别,以及它的安装。今天我们接着讲,当第一次下载后我们如何配置自己Git账号信息(这里可以是Github也可以是国内的码云账号等等),下面我们开始主题:这里大概有两种方式一种是通过全局配置信息让所有的项目都使用这个账号,另一种是在指定项目下配置单独的信息默认在我们第一次下载后Git后我们最好是配置到自己…

    2022年4月12日
    47
  • python3中for循环的用法_Python3 for循环语句

    python3中for循环的用法_Python3 for循环语句语法foriterating_varinsequence:statements(s)如果一个序列中包含一个表达式列表时,它需要首先计算。然后,序列中的第一项被分配给所述迭代变量iterating_var,接下来,语句块被执行。列表中的每一项都被分配到iterating_var,并执行语句(statement)块,直到整个序列完成。流程图range()函数内置函数range()是迭代…

    2022年8月12日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号