[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时,会有一段短暂的黑屏,然后才恢复的情况。
[Android] App在三星某些机子上闪退:"不保留活动"的更多相关文章
- Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法(转)
转载: Android App 启动页(Splash)黑/白闪屏现象产生原因与解决办法 首先感谢博主分享,本文作为学习记录 惊鸿一瞥 微信的启动页,相信大家都不陌生. 不知道大家有没有发现一个现象 ...
- android app崩溃日志收集以及上传
源代码获取请到github:https://github.com/DrJia/AndroidLogCollector 已经做成sdk的形式,源代码已公开,源代码看不懂的请自行google. 假设想定制 ...
- 【走过巨坑】android studio对于jni调用及运行闪退无法加载库的问题解决方案
相信很多小伙伴都在android开发中遇到调用jni的各种巨坑,因为我们不得不在很多地方用到第三方库so文件,然而第三方官方通常都只会给出ADT环境下的集成方式,而谷歌亲儿子android studi ...
- ionic1使用imagepicker在安卓手机上闪退问题
在上一篇文章中,提到了如何在ionic1中使用imagepicker插件,并且实现该插件显示中文(汉化)问题有兴趣可以看看:ionic1使用ImagePicker插件并且显示中文(汉化) 1.这次要解 ...
- 「踩坑记」Android API 判断权限申请结果的闪退问题
这几天尝试着用Android Studio写一个小工具的时候遇到了一个动态权限申请的问题.权限的申请使用的语句为: ActivityCompat.requestPermissions(this, ne ...
- 关于极光推送在手机系统低于iOS10的手机上闪退的问题。
最近项目中用到了极光推送,升级到了最新的SDK 2.1.9版本,发现只能在iOS10 上运行,其他测试的时候真机闪退.贴上一个可能的原因:
- app保存图片到用户相册时闪退解决办法
在iOS11中,app保存图片到用户相册时必须添加权限使用描述即NSPhotoLibraryAddUsageDescription,否则会闪退. 只需在info.plist—Property List ...
- VS C# xamarin 开发android 调试正常 发布分发后运行闪退出错
我强烈推荐大家如果不是很有必要就不要引用一些.NET STD的库,比如json库newtonsoft.JSON,直接引用官方的system.Json就足够了,否则会导致体积变得巨大 好了废话不多说,这 ...
- VS2017 Xamarin开发Android时首次部署完成后直接闪退
项目属性切换到Android选项,在打包属性上有一个[使用共享运行时]的选项要取消勾选,默认打钩时apk文件比较小,但程序无法运行起来. 取消后安装包一小变成几十M,这个目前好像没什么好的解决办法,毕 ...
随机推荐
- GString及IntelliJIdea中调试Groovy的操作步骤
今天是学习Groovy的第一天,首先我觉得学习任何一种语言都要先弄清楚这种语言的特性,因为只有了解了特性之后学习才能达到好的效果,那么groovy的特点是什么的.我觉得groovy是一种动态语言,动态 ...
- Linux下忘记rootpassword怎么办?
1.首先确认server出于安全的状态.也就是没有人可以随意地连接MySQL数据库. 由于在又一次设置MySQL的rootpassword的期间,MySQL数据库全然出于没有password保护的 ...
- The Swift Programming Language 中国版
iSwifting社会的 Swift 兴趣交流群:303868520 iOS 微信公众账号:iOSDevTip Swift 微信公众账号:SwiftDev iSwifting社区 假设你认为这个项目不 ...
- Java开发环境的基本设置
作为Java的刚開始学习的人,不知道其它的刚開始学习的人有没有和我一样的感受:用Java开发须要配置这么复杂 的环境.太难了.第一次配置时,一团混乱.Oracle监听服务打不开了,PLSql连接不上O ...
- 两种Data Table参数化设置的区别
首先介绍Data Table的语法: 1.DataTable.value(ParameterID, SheetID) 2.DataTable(ParameterID, SheetID) 以上2种方法的 ...
- python学习笔记之十:文件和素材
这里将介绍函数和对象--文件和流,让你在程序调用期间存储数据,并且可以处理来自其他程序的数据. 一. 打开文件 1.1 open函数 open函数用来打开文件,语法如下:open(name,[.mod ...
- 測试之路3——对照XML文件2
距离上一篇对照xml文件隔了非常久,并不代表一直做了那么久. 事实上上一次对照xml文件一直出错,事实上我忽略了一个非常easy的问题:我从根文件夹下得到的全部孩子,是这个根下的,而xml文件的组织形 ...
- C++传递函数指针
函数指针是一个很好的类型.因此,您可以编写一个函数,它的一个参数是一个函数指针.然后.在(外部)当函数使用的函数指针参数,来间接调用时调用相应的参数的函数的函数. 因为指针在不同的情况下能够指向不同的 ...
- cocos2d-x3.0rc 版 设置模拟器窗体大小
由于刚接触这职业时间不是非常长.也是第一次写博客,假设有错误的地方还请大神们指出,开通这博客目的非常easy相互学习和讨论(更重要的是记录工作中学到的东西以方便以后自己查阅) 先后參与过两个项目.只是 ...
- [Windows Phone] 以多国语言做为开发前提 (1)
原文:[Windows Phone] 以多国语言做为开发前提 (1) ? 前言 在先前 TechDays 2013 的课程 [开发 Windows Phone 商务应用程式就是这麽快] 中,其中一个部 ...