写在前面Android中的Activity是可以层叠的。我们每启动一个新的活动,就会覆盖在原活动之上,然后点击Back键会销毁最上面的活动,下面的一个活动就会重新显示出来。
其实Android是使用任务(Task)来管理Activity的,一个任务就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack)。栈是一种后进先出的数据结构,在默认情况下,每当我们启动了一个新的活
转载
2023-08-20 14:53:47
83阅读
活动的生命周期要从这个返回栈(Back Stack)说起:首先很重要的一句话:每一个应用程序application 都有一个自己的返回栈。 但是在singleInstance启动模式下,多个应用程序会访问同一个返回栈。可以达到共用activity的目的。Android 通过Task来管理活动,一个任务就是一组Activity集合,默认的standard启动模式会在活动启动的时候,放入栈
转载
2023-08-17 15:25:54
294阅读
Android开发中,Toast是一种简单的提示工具,可以在屏幕上显示一段时间后自动消失。然而,如果在Activity中使用Toast时不注意释放资源,就会导致内存泄漏的问题。
内存泄漏是指程序在运行过程中,无法释放不再使用的内存,导致内存占用持续增加,最终影响程序的性能和稳定性。在Android开发中,内存泄漏是一种常见的问题,需要开发者引起重视。
下面我们来看一个使用Toast导致内存泄漏
原创
2024-01-11 10:59:38
714阅读
今天,我们来记录数据存储的part2,讨论以下关于File和SQLite的话题。我们知道,再关系型数据库出现之前大家都习惯用文件来保存数据,后来出现了数据库,能够更加有效的组织数据,我们首先来讨论用文件存取数据。 对于文件,我们很容易想到对它的常用操作:创建、读取和写入等!Android也提供了这些方法,接下来看一下如何使用,很显然,我们首先要获得当前Activity的输入流才能输入数据,同理,
转载
2023-11-20 22:40:41
47阅读
onSaveInstanceState:保存当前焦点实例状态onRestoreInstanceState:还原保存的实例状态本文主要是记录一下onSaveInstanceState和onRestoreInstanceState的运行时间和作用,博主刚写到这个,各种研究后总结了一下,下面做一下简要的说明:onSaveInstanceState什么时候被执行:这个方法主要在“未经用户允许”的情况,ac
```markdown
activity泄漏会造成android系统如何
在Android开发中,**Activity泄漏**是一个普遍且棘手的问题,尤其是在复杂的应用程序中。泄漏不仅会导致内存消耗过高,还可能引发应用崩溃,影响用户体验,进一步影响业务指标。因此,理解Activity泄漏的影响及其解决办法至关重要。
## 问题背景
当一个Activity被创建并打开时,它持有多个资源,如视图
android中的动画有三种,帧动画,补间动画,属性动画帧动画,顾名思义,就是一张一张的图片集合按顺序播放。补间动画,让控件产生一些平移旋转放缩淡入淡出等效果,但是这些只是视图上的,实际控件的位置大小等各种属性都没变,动画完成会恢复原样。属性动画,让控件产生一些平移旋转放缩淡入淡出等效果,包括自身大小位置等属性一起改变。帧动画第一步 在res-drawable的目录下创建一个gif.xml的文件,
转载
2023-11-15 20:43:27
193阅读
# Android Activity中的Context引用内存泄漏问题
## 引言
在Android开发过程中,我们经常会使用Context对象来获取系统资源以及执行各种操作。其中,在Activity中使用Context是非常常见的,但是如果不注意使用方式,就容易导致内存泄漏问题。本文将详细介绍在Android Activity中的Context引用内存泄漏问题以及如何避免。
## 内存泄漏问
原创
2023-09-02 11:16:23
185阅读
在 Android 开发中,内存泄漏(Memory Leak) 是一个非常常见且影响应用稳定性和性能的问题。其中,Activity 未释放(即 Activity 实例本该被销毁却依然被某些对象强引用持有)是最典型、危害较大的一种内存泄漏。✅ 一、什么是 Activity 内存泄漏?? 简单来说:当一个 Activity 被用户退出(如按返回键或调用 finish())后,本应该被系统回收销毁,但由
对于内存泄漏,我想大家应该都有碰到过,常见的表现就是异常程序退出。到了程序强制关闭的时候,那已经到了一定的程度了。一般时候内存泄漏了我们是看不见的。因为它在堆中活动。所以常常我们会通过一些工具来检测。例如:LeakCanary、MAT等工具。MAT是一款强大的内存分析工具,功能繁多而复杂,而LeakCanary则是由Square开源的一款轻量第三方内存泄漏检测工具,当它检测到程序中有内存泄漏的产生
转载
2024-05-01 15:04:29
56阅读
TextWatcher原因activity内存泄漏。EditText配置addTextChangedListener该接口,至onDestroy电话里removeTextChangedListener弗里德。 版权声明:本文博客原创文章...
转载
2015-07-06 18:29:00
276阅读
无用的内存(没有使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄露。在开发的过程中,我们的一些编程习惯有可能会导致app内存溢出情况,下面举简单的几个例子说明:1、单利模式:单利模式在开发中我们经常使用,如果使用不当就会造成内存泄漏,单利模式都是静态的,它的生命周期一般都会很长,如果一个对象已经没有用处了
转载
2023-10-27 00:00:57
956阅读
开篇本篇以android-11.0.0_r25作为基础解析我们在之前的几篇Activity启动流程分析中已经了解了Activity一半的生命周期,接下来这篇文章我们就来分析一下Activity销毁相关的生命周期触发销毁既然要分析Activity销毁流程,那我们就从最常见的入口Activity.finish入手public void finish() {
finish(DONT_FINISH
转载
2023-10-19 11:28:33
348阅读
背景之所以会写这篇文章,是因为之前偶然看见csdn的博客专家写到这个问题,给出的结论实在让人大跌眼镜。于是看了下源码,索性做个记录。在Android 7.0以前,谷歌一直约束着让它以单窗口的姿态与广大用户见面(当然,除了个别不听话的厂商,早已实现了多窗口)。从开发者的角度来看,Activity(Fragment)通常是我们与用户交互的载体,也就是象征意义的“窗口”。通常我们的应用一般会有多个Act
转载
2023-12-21 15:07:13
53阅读
App看到的界面就是activity,继承Activity类。1.继承Activity类,重写OnCreate()创建activity之后要重写OnCreate()方法,Android讲究逻辑和视图分离,布局文件在res目录中,逻辑实现在java目录中。OnCreate()中添加setContentView(R.layout.main_layout); 显示布局文件。Android s
转载
2024-09-10 09:36:47
48阅读
OOM 是 Android 开发中常见的问题,而内存泄漏往往是罪魁祸首。为了简单方便的检测内存泄漏,Square 开源了 LeakCanary,它可以实时监测 Activity 是否发生了泄漏,一旦发现就会自动弹出提示及相关的泄漏信息供分析。本文的目的是试图通过分析 LeakCanary 源码来探讨它的 Activity 泄漏检测机制。LeakCanary使用方式为了将 LeakCanary 引入
原创
2021-01-24 16:55:35
363阅读
# Android 中 Activity 中 Fragment 内存泄漏的解决方案
在 Android 开发中,Fragment 是一种非常常用的组件,它可以有效地帮助开发者组织和管理界面。但在某些情况下,Fragment 可能会导致内存泄漏。内存泄漏不仅会消耗设备的内存资源,还可能导致应用崩溃。本文将深入探讨 Activity 中 Fragment 内存泄漏的原因及其解决方案。
## 一、F
MemoryAnalyzer的介绍及使用请参见:java 内存泄露分析(jmap + MemoryAnalyzer) Android 内存泄漏分析编写如下代码(就是一个按钮加一个imageview,不停地点击button,就会翻转90度图片) Bitmapbt;
@Override
protectedvoidonCreate(Bundlesave
1、资源性对象未关闭对于资源性对象不再使用时,应该立即调用它的close()函数,将其关闭,然后再置为null。例如Bitmap等资源未关闭会造成内存泄漏,此时我们应该在Activity销毁时及时关闭。2、注册对象未注销例如BraodcastReceiver、EventBus未注销造成的内存泄漏,我们应该在Activity销毁时及时注销。3、类的静态变量持有大数据对象尽量避免使用静态变量存储数据,
转载
2023-10-12 13:10:35
108阅读
# Java集合添加Activity导致内存泄漏的解决方法
## 1. 概述
在Java开发中,使用集合来管理Activity是常见的做法。但是如果不正确地使用集合,会导致Activity无法被垃圾回收,进而造成内存泄漏。本文将详细介绍内存泄漏的原因和解决方法。
## 2. 内存泄漏的原因
内存泄漏的原因是由于Activity在被添加到集合后,没有正确地进行移除操作。这会导致Activity无
原创
2023-11-04 05:05:32
52阅读