2 u013633997 u013633997 于 2016.02.24 13:17 提问

Activity中用EventBus的onEventAsync方法做耗时操作会不会导致内存泄漏?

如主题所述,如果在onEventAsync中做耗时操作,这个时候关闭了Activity会不会导致内存泄漏,如果关闭之后又立即启动该Activity又会是怎么样的?

1个回答

luochoudan
luochoudan   Ds   Rxr 2016.02.24 17:50

这个没法准确答,若果Activity已经结束,但耗时操作仍然持有Activty的变量啦,控件啦等等,那肯定会出问题。建议,Activity关闭的工作放在onEventAsyn结束之后处理。

u013633997
u013633997 不过按你说的持有Activity内部成员变量的话,那一定是内存泄漏了。当我重新进入的时候有两个线程在运行处理两次进入的那个事件。
2 年多之前 回复
u013633997
u013633997 多谢回答,不知道你EventBus用的多不多,今天刚好有空我拿着测了一下,在Activity中写了一个接受事件的方法,onEventAsync,然后发事件,死循环打印log,当我退出Activity的时候仍然一直打印,这里我没有持有Activity自身的成员变量,不知道这样算不算内存泄漏。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
内存泄漏之EventBus
项目中使用了EventBus之后,不停地出现报告关于EventBus内存泄漏的Leaks 反复检查了代码,发现EventBus的注册已经解绑都是正确的,一开始也觉得这个内存泄漏地莫名其妙。 泄漏大概说的是,EventBus持有了某个Activity或者Fragment的对象,这个对象泄漏了。后面我梳理了一下场景: 导航页过去之后,进入多个Fragment切换的主界面(EventBus有注册在这
EventBus传值(Fragment和Activity,Activity和Activity)
第一步:在build.gradle中添加依赖 dependencies { compile 'org.greenrobot:eventbus:3.0.0' } 第二部创建一个javaBean,就是要保存你将要传递的内容,比如下面 public class FirstEvent { private final String img; private final Stri
Activity与Service通信之EventBus
一、导包: compile 'org.simple:androideventbus:1.0.5' 二、在Activity和Service分别注册EventBus //注册EventBuseventBus = EventBus.getDefault();eventBus.register(this); 在onDestroy()注销EventBus @Overrideprotec
Toast导致Activity内存泄漏问题
Toast有可能导致Activity泄漏。在创建Toast时,需要传入Context,如果这个Context是Activity,而Toast是异步弹出,有可能弹出时Activity已经结束。所以正确使用方法,应该是传入ApplicationContext,避免Toast导致内存泄漏。
在Activity中使用Thread导致的内存泄漏
原文链接 : Activitys, Threads, & Memory Leaks原文作者 : AlexLockwood译文出自 : 开发技术前线 www.devtf.cn译者 : chaossss校对者: yinna317 状态 : 完成 注:这篇博文涉及的源码可以在 GitHub 上面下载哦 做 Android 开发最常遇到的问题就是在 Activity 的生命周期中协调耗时任务
EventBus实现Activity与Service通信
现在有如下需要:在一个Service启动一个定时线程,每隔一段时间从网络上获取一张图片,并将获取的图片更新到ActivityUI上。(1)如果通过bindService()方法启动一个Service,虽然可以实现Service和Activity通信,但是绑定本地Service比较繁琐。 (2)如果通过startService()方法启动一个Service,通常情况下,Activity无法与Serv
EventBus的两个Activity的传值
//===================依赖            compile 'org.greenrobot:eventbus:3.0.0' //=====================================Bean类 public class Bean { String number; String mm; publi
Android开发常见的Activity中内存泄漏及解决办法
上一篇文章楼主提到由Context引发的内存泄漏,在这一篇文章里,我们来谈谈Android开发中常见的Activity内存泄漏及解决办法。本文将会以“为什么”“怎么解决”的方式来介绍这几种内存泄漏。 在开篇之前,先来了解一下什么是内存泄漏。什么是内存泄漏? 内存泄漏是当程序不再使用到的内存时,释放内存失败而产生了无用的内存消耗。内存泄漏并不是指物理上的内存消失,这里的内存泄漏是值由程序分配的内
EventBus 使用心得及技巧
先给官网的建议步骤: 地址如下:https://github.com/greenrobot/EventBus EventBus in 3 steps Define events: public class MessageEvent { /* Additional fields if needed */ } Prepare subscribers: Regist
EventBus使用详解(二)——EventBus使用进阶
前言:这段时间感觉自己也有点懒了,真是内心有点自责呢,除了工作,也没做点什么,Ev