文档章节

android dialog cancel/dismiss listener memory leak

乐百
 乐百
发布于 2015/06/04 10:32
字数 217
阅读 86
收藏 0

其他一个任意的handlerThread线程, recyle一个message 回到 Message sPool.此时handlerThread looper循环中的message临时变量的引用还是存在的,就是拿到一个空壳。

这个时候创建dialog设置dismiss listener,dialog会obtain一个message来保存这个lisenter。此时这两个message是同一个地址。

真正dismissdialog的时候,dialog并不会消费掉刚刚obtain的message(因为dialog可以反复的show dismiss),而是复制一个新的message出来。(最终这个开始dismiss message永远不会消费掉,往往listener直接或间接应用activity)

当dialog销毁,且包含其的activity也销毁掉时,这个message销毁不了,被另外线程拿住,一直到等到handlerThread一个新的message到来才会消失掉,失去所有引用。


相当隐蔽的activity leak~

© 著作权归作者所有

乐百
粉丝 1
博文 6
码字总数 665
作品 0
成都
私信 提问
Android基础 - 对话框和浮动Activity【转】

在之前的学习过程中我们已经知道,Android应用中最常用的屏幕显示开发是基于Activity的,但是,在很多情况下我们需要显示一个对话框或浮动窗体来完成一些简单的任务,比如需要让用户输入一些...

kevin.gan
2010/01/06
1K
0
Android基础 - 对话框和浮动Activity[转]

在之前的学习过程中我们已经知道,Android应用中最常用的屏幕显示开发是基于Activity的,但是,在很多情况下我们需要显示一个对话框或浮动窗体来完成一些简单的任务,比如需要让用户输入一些...

kevin.gan
2010/01/06
2.5K
0
android 的 Dialog相关

对话框经常作为Activity的一部分来创建和显示。你通常应该从protected Dialog Activity.onCreateDialog (int id) 回调方法里创建对话框。当你使用这个回调函数时,Android系统会有效的设置这...

鉴客
2011/09/26
561
0
Android 自定义AlertDialog,调用方法与系统一致

由于android原生的AlertDialog都一致,有时为了和你的项目的Dialog保持一致,你最先想到的就是有没有AlertDialog相关的style,但据我的查找,官方没有提供明确的文档来修改其样式,所以我们想...

今日竹石
2014/03/06
1K
0
浅谈JAVA反射机制在Android应用开发中的应用

最近一个多月在准备某软件设计比赛的作品,因为自己对Android平台的喜欢,项目定在Android上的应用,此文仅作为一个多月来对学习Android的一点总结和反思。 想必学过JAVA的人一定接触过“反射”...

无鸯
2011/09/06
14.1K
4

没有更多内容

加载失败,请刷新页面

加载更多

前端面试题汇总

一. HTML常见的兼容性 1.HTML5 标签在低版本浏览器不兼容 解决办法:使用html5shiv库,引入下列语句 <!--[if lte IE 8]> <script src="https://cdn.bootcss.com/html5shiv/r29/html5.js"></sc......

蓝小驴
41分钟前
10
0
OSChina 周四乱弹 —— 我气的脸都黑了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐《Red Battle》- 高橋李依 / 豊崎愛生 《Red Battle》- 高橋李依 / 豊崎愛生 手机党少年们想听歌,请使劲儿戳(这里) @丶Lion ...

小小编辑
54分钟前
677
23
找OSG教程, B站就有

https://www.bilibili.com/video/av64849038?from=search&seid=11632913960900279653

洛克人杰洛
今天
6
0
学习记录(day07-Vue组件、自定义属性、自定义事件)

[TOC] 1.1.1什么是组件 一个vue文件就是一个组件 组件将html标签/css样式/对应JS打包成一个整体,也可以理解钻进一个具有样式和特效的自定义标签。 一、编写组件(提供方)<template> <di...

庭前云落
今天
5
0
使用Prometheus监控SpringBoot应用

通过之前的文章我们使用Prometheus监控了应用服务器node_exporter,数据库mysqld_exporter,今天我们来监控一下你的应用。(本文以SpringBoot 2.1.9.RELEASE 作为监控目标) 编码 添加依赖 使...

JAVA日知录
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部