android view stop,android – onDestroyView片段永远不会在onStop之后调用
所以你的问题似乎是“当你继续向堆栈应用程序添加太多活动时会逐渐抛出OOM异常”,并且你认为原因可能是切换活动时顶层Fragment上没有调用onDestroyView().
OnDestroyView()
首先,当你从Activity1转到Activity2时,很可能onStroyView()不会在Activity1中的Fragment上调用,因为在启动Activity2之后你没有在Activity1中调用finish().
这意味着您的Activity1在活动后台中很活跃,但已停止(即onStop调用).由于Activity1还活着,所以它的后座和它也是如此.片段. Activity1的Backstack顶部的片段也将停止.因此,基本上,当您使用“主页”按钮将应用程序发送到后台时,Activity1处于与其输入的状态类似的状态.
在其他情况下,当在片段backstack中在其上方添加另一个片段时,在片段上调用onDestroyView().但是,它不了解活动后台/活动任务.
如果要清除片段的视图,可以手动执行(即fragmentManager.popbackstack()或beginTrasaction.remove(…)),也可以在启动Activity2后关闭Activity1(即调用finish()) – 这也将释放你的内存,并在Activity1的顶部片段上调用onDestroyView().
OutOfMemoryException异常
…when I go on adding too many activity to the stack app throws OOM
exception gradually.
很可能OOM崩溃的原因是你的内存中有太多的Activity实例,而不是某些片段上没有调用onDestroyView().我还假设您有多个相同活动的实例.
在AndroidManifest.xml中声明您的活动时,请考虑使用android:launchMode =“singleTask”(reference).这可确保您在给定任务中只有一个特定活动的单个实例.如果它是由同一个Activity的太多实例严格导致的,那么它本身应该修复你的OutOfMemory问题.
这种方法本身意味着您需要进行某些额外的处理,将重用的活动的UI /状态重置为“干净”的状态.幸运的是,您可以依靠onNewIntent(…)(reference)来检测何时需要这样做.
稍后编辑:内存监视器
关于搜索OutOfMemory错误的原因:请使用Android Memory Monitor搜索内存泄漏.我发现内存泄漏是讨厌的小鬼,从一开始就使用内存监视器总是比(知情)猜测更好.
在您的情况下,在使用您的应用程序一段时间后,在执行一些活动开关后,您需要查看内存中是否有特定活动的多个实例(例如,Activity1).
基本上,你需要寻找类似的东西:
只记得在进行堆转储之前强制垃圾收集器几次(只有一次是不够的).这是为了确保在某些点上垃圾收集的引用不会出现在转储中.
希望这可以帮助
android view stop,android – onDestroyView片段永远不会在onStop之后调用相关推荐
- android view禁用,Android 禁止ViewPager的自带滑动效果
由于最近在做墨水屏的相关工作,ViewPager自带的滑动效果在墨水屏上表现的很不好,残影太重了.所以禁止自带的滑动效果,用接口来接管相关逻辑实现自处理. import android.content ...
- Android view变形,android仿变形金刚效果实现MatchView
what?变形金刚!先看效果吧! MainActivity.javapackage com.lee.matchview; import com.example.matchview.R; import ...
- Android view.settran,Android RecyclerView从入门到玩坏
目录 前言 基础使用 分隔线 点击监听 搭配CardView 更丰富的条目 增删条目 快速添加视图 让RecyclerView支持复杂视图 最后前言 RecyclerView在Android界面开发当 ...
- android view嵌套,Android RecyclerView嵌套RecyclerView点击事件
RecyclerView嵌套RecyclerView点击事件遇到取值错乱的问题 其实问题根本就是咱们没有处理好被嵌套的那层recycleview的position 那么解决思路也很简单,想办法把被嵌套 ...
- android.view.surface,Android SurfaceView 源码分析及使用
概述 SurfaceView 是 Android 中一种比较特殊的视图(View),它跟平时时候的 TextView.Button 最大的区别是它跟它的视图容器并不是在同一个视图层上,它的 UI 显示 ...
- android view flipper,Android之ViewFlipper的简单使用
大家都使用过ViewPager,但是ViewPager还有一个兄弟,那就是ViewFlipper.两者的名字非常相似,我们可以将ViewPager理解成"一页一页的视图",View ...
- android view ondestroy,Android片段onCreateView在onDestroy之后不再調用。
According to the Android fragment lifecycle i would expect that after onDestroy the fragment will be ...
- android view setleft,android – 在新textview上使用setLeft / setRight方法
我正在以编程方式使用TextViews,我需要动态添加新视图并在RelativeLayout父级中设置它们的左/顶位置. 我正在做的是这样的: RelativeLayout global=(Relat ...
- android view 平滑,Android移动view动画问题(让移动更平滑)
Android写动画效果不是一般的麻烦,网上找了好久,终于解决了动画的问题,总结记录以共勉. 仅以水平方向移动效果做说明,垂直方向类似. 完整动画函数代码: public void slideview ...
最新文章
- ArcGIS JavaScript API本地部署离线开发环境
- php mysql 组件_Ubuntu20.04安装apache、mysql、php、phpmyadmin、wordpress(一)
- 关于PPP认证中的PAP和CHAP原理取证与相关疑问
- 【喜报】利用COOC又发表了多篇一区SCI、SSCI、CSSCI
- 所有浏览器主页都变成hao123,hao123劫持浏览器(亲测有效)
- 主机MTU值和Docker MTU值不一致导致Harbor无法推送问题
- MySQL 批量插入/填充数据 - 实践
- 设置QQ的个性在线状态图片
- 关于张量的一点点小思考
- 网络安全周 | 分享8个网络安全小知识
- 重庆培临创新计算机学校,高铁培训职业学校_重庆市涪陵创新计算机学校
- 安卓机使用anydesk 远程控制 Ubuntu18.04 成功
- esp8266电池供电方案_节能小妙招,8个太阳能供电案例抢先围观
- 妻子、情人、红颜知己
- fatal: unable to access ‘https://github.com/raw-recruit678/Leetcode.git/‘: OpenSSL SSL_read: Connect
- Tensorflow的MNIST进阶教程CNN网络参数理解
- 不同样本之间的相似性度量(Similarity Measurement)
- 基于8086的电子秒表
- Android:Frament详解
- python游戏编程入门免费_python游戏编程入门 python游戏编程入门课
热门文章
- Spring Boot基础学习笔记01:Spring Boot入门程序
- 数据结构学习笔记:时间复杂度
- Go的数组切片 Python的列表
- 【BZOJ1051】受欢迎的牛,tarjan缩点重构图
- 没有run窗口_使用 Terminator 在一个窗口中运行多个终端 | Linux 中国
- mysql中的lgwr_MySQL Replication和Oracle logical standby的原理对比
- 分解cad图纸的蜂鸟工具_知道这些CAD统计技巧,让你计算事半功倍!
- bzoj1225 [HNOI2001] 求正整数 约数个数定理+对数
- RELL软件测试初学者化妆品,浅析软件测试流程在高校软件测试工作室中的应用...
- Intel处理器电源管理技术(1) - 概述 - 8086/286/386SL/486SL APM ACPI