文档章节

锁屏生命周期变化

ThankSars
 ThankSars
发布于 2017/08/15 18:46
字数 296
阅读 23
收藏 1

工作随记:

接手一个新项目的维护迭代,其中有一个播放器界面VideoActivity,重构过程发现问题,先上代码


    @Override
    protected void onPause() {
        super.onPause();
        videoView.pause();
        LogUtil.e("onPause");
    }

    @Override
    protected void onResume() {
        super.onResume();
        videoView.start();
        LogUtil.e("onResume");
    }

    @Override
    protected void onStop() {
        super.onStop();
        LogUtil.e("onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        videoView.stopPlayback();
        LogUtil.e("onDestroy");
}

点击Home键回到首页,生命周期执行onPause()—–>onStop(),回到app执行onResume(),符合切出去视频暂停,回到app继续播放的需求。

当按锁屏键锁屏,生命周期执行onPause()—–>onStop()—–>onDestroy()—–>onCreate(),锁屏仍在播放,解屏生命周期也执行onPause()—–>onStop()—–>onDestroy()—–>onCreate(),视频又重新播放

这种情况是由于横竖屏切换引起的,横竖屏切换时 会销毁当前Activity 再创建 一个新的Activity。

解决方法:

解决这个问题 只要在程序的配置文件 (APPManifest.xml ,的相关Activity里加上

android:configChanges=”screenSize|keyboardHidden|orientation”

加上这句后 按锁屏键 就不会销毁当前Activity 也不会在后台创建Activity了  ,其生命周期类似于按了Home键的过程。

Ps.网上很多都没加上screenSize,4.0以上似乎就还是存在上述问题

© 著作权归作者所有

ThankSars
粉丝 0
博文 3
码字总数 779
作品 0
广州
Android工程师
私信 提问
【Android】前后台切换监听

【Android】前后台切换监听 Android 本身并有提供这样的监听,所以就只能走偏门了。 首先,需要定义一下,什么叫“前台”,什么叫“后台”。本文定义如下: 前台 后台 所以,退到后台的方式太...

xesam
2016/03/07
1K
0
Fragment与Fragment相互切换之间的生命周期方法

Fragment 1 切换到 Fragment 2时生命周期变化 1、通过 add hide show 方式来切换 Fragment Fragment1 的生命周期变化为:onCreate()、onCreateView、onStart()、onResume() Fragment2 ...

李培能
2018/08/01
0
0
AccessibilityService简介

目录 用 来生成目录: 简介 AccessibilityService是一个辅助类,可以监听我们手机的焦点,窗口变化,按钮点击等等。实现它的服务需要在手机设置里面->辅助功能在这里面找到你自己实现的辅助类...

cjh94520
2015/12/16
0
0
洞悉Android Keyguard

Android Keyguard自Android L以来一直没有多大变化。在Android L之前, Keyguard有自己独立的进程,KeyguardService自开机时启动并常驻。Android L之后到Android P,Keyguard和SystemUI共同享...

瑞哥Android之旅
2018/08/12
0
0
程序设置横屏后,锁屏时会被销毁一遍,解锁时又重新加载onCreat的问题解决

今天在写一个应用的时候,因为需要设置成横屏模式,所以在Manifest里面的Activity里面加了两个参数设置: android:screenOrientation="landscape" android:configChanges="keyboardHidden|or......

守夜之星
2013/09/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql免安装版,服务无法启动没有抱任何错误

1.解压 2.新建my.ini [mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, e......

榴莲黑芝麻糊
26分钟前
0
0
Qt编写安防视频监控系统3-通道交换

一、前言 最开始写通道交换的功能的时候,走了很多弯路,比如最开始用最初级的办法,触发交换的时候,先关闭视频,然后设置新的url重新打开视频,这样处理非常低级而且耗内存还卡还很慢,毕竟...

飞扬青云
27分钟前
0
0
如何远程调试部署在CloudFoundry平台上的nodejs应用

网络上关于如何本地调试nodejs应用的教程已经很多了,工具有Chrome开发者工具,Visual Studio Code,和nodejs周边的一些小工具等等。 在实际情况中,我们可能遇到本地运行良好,但是部署到C...

JerryWang_SAP
48分钟前
5
0
微信扫码访问网站调用默认浏览器打开如何实现?

我们在微信内分享链接或二维码的时候,我们会发现我们的网站是可以在浏览器里正常打开的,但就是不能在微信里打开,提示 “ 已停止访问该网页 ”,无论是聊天框也一样。说是系统检测到您的网...

明尼苏达哈士奇
56分钟前
3
0
一份Java程序员进阶架构师的秘籍,你离架构师还差多远

一、如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并...

我最喜欢三大框架
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部