zoukankan      html  css  js  c++  java
  • [Android] App在三星某些机子上闪退:"不保留活动"

    今天遇到用户反映应用总是闪退。
    现象:在MainActivity后,只要进入任何主进程相关的二级界面,都会导致应用闪退(注:不是崩溃引起的,只是闪退)
    分析:1.看log日志,退出前有抛出异常,但查看该处代码发现异常已经被catch住,异常信息被打印出来而已。
    2.怀疑是每个Activity实现时,其父类BaseActivity有干坏事,则重新自定义了一个Activity不继承自父类,发现现象仍存在,该Activity仍闪退。(vinney,thanks)
    3.发现每次MainActivity的自定义的exitApp()都被调用了,设置断点,发现是由onDestory()发起的,而onDestory()则是由系统调用的。
    4.怀疑每个Activity的onDestory()在从屏幕消失后都会被立即调用,写了个小demo,得到验证。开始怀疑是机子问题。
    5.google关键字"三星 Activity 闪退"真相出来了,发一有笑点的帖子http://zhidao.baidu.com/question/493015963.html。至此定位原因。
    原因:此三星设备中,有一个“开发者选项→不保留活动(用户离开后立即清除每个活动)”,即会导致进入从MainActivity离开后都会调用MainActivity.onDestory(),导致执行退出操作,闪退(edit by sodino)
    恢复:取消掉“不保留活动”的选项即可

    有没有即使勾选了"不保留活动"但app内能解决的方法?可以,在MainActivity处的onDestory()不调用退出应用操作。可能重写finish(),当代码明确调用finish()后再执行退出应用操作。但仍会有个缺点即为Activity.onDestory()后,从二级界面按返回键回到MainActivity时,会有一段短暂的黑屏,然后才恢复的情况。



  • 相关阅读:
    PHP 批量生成静态文件目录代码
    PHP 导出Excel 文档
    Samba Server 配置
    PHP curl超时问题
    php ci 2.0框架 ORM
    YII 的基本CURL操作
    PHP 操作socket 实现简易聊天室
    PHP simplexml_load_string 过滤<![CDATA[XXXX]]>
    PHP 获取当天 凌晨 时间戳常用代码
    2019年值得你使用的20大开发工具
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3241192.html
Copyright © 2011-2022 走看看