草庐IT

java - 可能替代静态内部类以防止 android/java 中的内存泄漏?

最近我一直在研究java/android中的内存泄漏,几乎所有地方都说我应该使用具有弱引用的静态内部类而不是匿名类。所以,在我的android应用程序中,我开始这样做,但很快就厌倦了,因为它有很多样板代码……我认为有一个我更愿意使用的替代解决方案,但我不确定它是否是在防止内存泄漏方面是静态内部类的有效替代方案。正如我之前所说,我还没有在其他任何地方看到建议的这个解决方案(都说使用静态内部类),所以这就是为什么我不确定我的替代方案是否有效。我将使用我的应用程序中的一个简单示例:我有一个名为WebClient的类,它处理异步Web请求,它接受一个名为iCallback的接口(interfa

Android - Activity 已泄漏 IntentReceiver

我正在编写非常简单的应用程序。它工作正常,但是当我按下后退键时它崩溃了(Activity泄露了最初在此处注册的IntentReceiver)。这个应用程序应该在后台运行。如何正确执行?importandroid.app.Activity;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.content.IntentFilter;importandroid.content.SharedPreferences;imp

java - 这是消除匿名类以降低内存泄漏风险的好技术吗(使用数据持有者)

匿名类很容易造成内存泄漏,尤其是在Android世界中,Activity或Fragment会因为配置变化而突然销毁。以下是众多示例之一。http://chaosinmotion.com/blog/?p=696http://blog.andresteingress.com/2011/10/12/anonymous-inner-classes-in-android/https://blogs.oracle.com/olaf/entry/memory_leaks_made_easy原因是,在Activity或Fragment中创建匿名类,匿名类将始终持有对Activity的隐式引用或frag

java - Android内存泄漏的潜在原因

我正在使用leakcanery来查找Android中的内存泄漏。我发现并修复了所有Activity漏洞。(很惊讶知道有这么多顺便说一句!)。我还为我所有的Fragment添加了watchrefWatcher。问题1:还有什么我应该注意的,可能会导致明显的内存泄漏吗?问题2:是不是观察Fragment泄漏是多余的,因为Fragment持有对其Activity的引用?无论如何我都会收到通知,对吗?:-/问题3:当我在androidstudio中检查内存监视器时,它显示内存使用量随时间增长。这是一个巨大的内存泄漏的迹象,还是Android操作系统很好,它只是给我更多的内存?我怎样才能确定?

Android Volley 内存泄漏

我使用google的volley库,现在我一直在与我的应用程序中的内存泄漏作斗争以寻找弱点。我已经做了很多研究并尝试了很多,但现在我只是不知道该怎么做。这是示例代码:SplashActivity.javapublicclassSplashActivityextendsAppCompatActivity{ContextmContext;AuthRequestmAuthRequest;GetTokenOnSuccessListenermGetTokenOnSuccessListener;GetTokenOnErrorListenermGetTokenOnErrorListener;priv

java - 如何调试堆转储中的异常实例没有入站引用的内存泄漏?

我一直在尝试诊断我正在编写的Android应用程序中的内存泄漏。我将堆转储加载到Eclipse中,但我看到的结果非常奇怪。堆中有大约20,000个异常实例(具体来说,来自UnboundIDLDAP库的LDAPException)没有入站引用。也就是说,它们出现在支配树的根部。OQLSELECTobjectseFROMcom.unboundid.ldap.sdk.LDAPExceptioneWHERE(inbounds(e).length=0)返回超过20,000个结果,总计几乎所有的堆。然而,GC在堆转储之前运行,我可以看到它在执行泄漏代码期间在控制台中反复运行。如果这些实例没有入站引

android - ViewPager、PagerAdapter 和 Bitmap 导致内存泄漏(OutOfMemoryError)

我已经构建了一个显示天气数据的Android应用程序(如果你想测试问题,我可以私下给你应用程序名称)。用户可以从一天浏览到另一天以查看特定日期的天气。应用架构我的应用程序使用fragment(带有调用特定fragment的抽屉导航的单个MainActivity)。DayPagerFragment使用具有无限数量页面(动态fragment)的ViewPager。一页代表一天。DayPagerFragmentpublicclassDayPagerFragmentextendsFragment{privateViewPagermViewPager;@OverridepublicViewonC

java - MediaControllerCompat 内存泄漏

我有一个MediaControllerCompat,它是在建立MediaSession连接时创建的一个实例。完成此连接后,我按以下方式创建MediaControllerCompat:MediaControllerCompatmediaController=newMediaControllerCompat(this,token);MediaControllerCompat.setMediaController(this,mediaController);token是从MediaSession获取的。每次按下后退按钮都会检测到泄漏。我没有向MediaControllerCompat注册任何

android - 如何使用新的 AndroidProfiler 处理内存泄漏

我正在尝试学习如何识别和处理我的应用程序中的内存泄漏。我正在读这个greatarticle,但我对如何在AndroidStudio3.0附带的新“AndroidProfiler”工具中应用它感到有点困惑。我有一个测试应用程序,LeakCanary指出我的应用程序存在内存泄漏。事实上,当我运行探查器并按“转储java堆”时,我可以看到我的MyCollectionActivity有4个实例,当我单击这些实例时,我可以看到详细信息:但是文章中显示的工具具有我在“AndroidProfiler”中看不到的选项:Iwillnotgointodepthabouthowtonavigatethehu

Android位图imageview内存泄漏

我将4x4imageView放到一个Activity(BoardActivity)中,用户可以通过单击它们来更改图像。使用HTCDesire(Android2.2.2),我在大约30分钟的密集使用中遇到了OOM(内存不足)-编辑:此Activity的第16次启动-,但没有其他设备产生此问题(android2.1和安卓2.2.1)。有没有可能是我在使用位图/ImageView时犯了一些错误并导致了这个错误?首先,我将所有资源ID加载到map中:privateMapimageResourceMap;imageResourceMap=newHashMap();imageResourceMap