Android锁屏后主Activity的onDestroy方法被调用导致黑屏问题解决方案

转载 2015年07月07日 17:26:28

[原]Android锁屏后主Activity的onDestroy方法被调用导致黑屏问题解决方案

2014-1-22阅读1398 评论2


解决这个问题,花了我3个多小时,不停的出包,不停的实验,google一圈,最终找到了解决方案。这里总结一下,后面再碰到此问题的兄弟就可以绕过去了。

问题描述:

按下锁屏键(电源键),机器锁屏,看日志发现,主Activity先onDestroy()了,随即又onCreate(),但自己并没有调用该Activity的finish()方法。

解决方案:

   android:configChanges="orientation|screenSize">

看下面的列子

<span style="padding: 0px; margin: 0px; font-family: 'Microsoft YaHei'; font-size: 12px;"><activity android:name=".Main"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:screenOrientation="landscape"
    android:configChanges="orientation|screenSize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity></span>


原因如下:

游戏本身是横屏,手机界面是竖屏,锁屏操作存在一个横屏转竖屏的过程,这个过程如果不加android:configChanges="orientation",Activity会自动重新走一遍它的生命周期,即先销毁再重新创建,加上后只会调用onConfigurationChanged。如果你的target > 13时,还必须得加上“ScreenSize”(If your application targets API level 13 or higher (as declared by the minSdkVersion and targetSdkVersion attributes), then you should also declare the "screenSize"    configuration, because it also changes when a device switches between portrait and landscape orientations.)。

在Google是的时候还发现了另一种情况,表现一样,但根本不是一回事,因为本身我测试的时候用得也是Galaxy s4,当时还小兴奋了一把。

这个情况是:三星手机有一个开发者设置,“不保留活动”,如果是选中的状态的话,Activity间跳转时,总把前一个Activity销毁。

这里有一篇详细的博文,大家可以看下:关于三星设备 Activity.onDestroy() 被调用。显示“开发者选项”


参考资料:

横屏切换竖屏Activity的生命周期及configChanges

Activity onDestroy() 调用研究


相关文章推荐

Android Fragment集成高德地图黑屏的问题解决方案

官方给的3.0Map的集成api说了: MapView 是 Android View 类的一个子类,它可以帮助您在 Android View 中放置地图,它是应用程序和窗口部件的基本构建类。...

SurfaceView左右滑动切换黑屏问题解决方案

在项目中使用的是高德地图,放置MapView的Fragment和其他Fragment放置一个ViewPager中切换;当从MapView的Fragment切换到其他Fragment或者从其他Fragm...

在设置了android:parentActivityName后,点击子Activity返回键,父Activity总会调用OnDestroy()的解决方案

最近查了很久这个事情,分享给大家, 原理很简单,一个Activity在manifet里声明了android:parentActivityName;这时候通过Activity左上角的返回按钮点击返回, ...

突出一个简单粗暴!Android Activity泄漏问题解决方案

测试跟你说你的XXActivity泄露了,你如何确认是否真的泄漏? 确认泄漏后,你又如何定位是哪里的问题导致内存泄漏? Android日常开发中,内存泄漏的重灾区就是Activity,相信这两个是...

突出一个简单粗暴!Android Activity泄漏问题解决方案

测试跟你说你的XXActivity泄露了,你如何确认是否真的泄漏? 确认泄漏后,你又如何定位是哪里的问题导致内存泄漏? Android日常开发中,内存泄漏的重灾区就是Activity,相信这两个是...

Android Activity泄漏问题解决方案

App冷启动白屏/黑屏问题分析及解决方案

一、问题背景最近在做产品首次启动页优化功能时,发现在点击启动launch图标与切换到子进程页面时会白屏或黑屏一段时间,时间长短根据不同机型性能不一。原来看过相关文章,借此机会总结一下app启动的闪屏页...

Ubuntu 10.04 开机黑屏问题的解决方案

有许多用户反应, 在最新版Ubuntu 10.04安装前后出现黑屏现象. 似乎问题在于一些显卡驱动的不兼容, 尤其是一些ATI和nVidia显卡(并不奇怪XD). 出问题的也有一些Intel显卡. 这...

[android开发]百度地图截屏黑屏问题解决

大家好,最近在开发中使用了百度地图,具体结构就是一个父activity里面包含一个fragment,mapview嵌套在fragment中,主要是实现截取当前屏幕,分享到第三方平台。 第一次截屏,使...
  • gjirong
  • gjirong
  • 2016年03月22日 09:48
  • 1476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android锁屏后主Activity的onDestroy方法被调用导致黑屏问题解决方案
举报原因:
原因补充:

(最多只允许输入30个字)