【java – android中的静态单例类内存泄漏】教程文章相关的互联网学习教程文章

Android Media Player保留应用程序实例并导致内存泄漏【代码】

我有一个媒体播放器作为成员变量的活动. 我的媒体播放器初始化如下:mMediaPlayer = new MediaPlayer(); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mMediaPlayer.setDataSource(MyActivity.this, URL); mMediaPlayer.prepareAsync(); //i set a on Prepared Listener to start playing on Prepared一切正常,然后我覆盖我的活动onStop方法以发布Media Player.if(mMediaPlayer!=null){if(mMediaPlayer.isPlay...

java-不要将Android上下文类放在静态字段中;这是内存泄漏【代码】

我有一个带有BeaconNotificationsManager的服务,我想在我的Activity中访问此BeaconNotificationsManager.目前,我的BeaconNotificationsManager是静态的:public class MyService extends Service { public static BeaconNotificationsManager bnm; }我正在这样访问我的活动中的内容:if(MyService.bnm != null){// do stuff }尽管Android告诉我这很糟糕.正确的方法是什么?解决方法:关于静态问题:只需说您正在从另一个类引用服务b...

Android:通过处理程序发送大量消息时,明显的内存泄漏【代码】

我有一个应用程序,其中一个线程正试图通过处理程序将大量Location对象发送到UI线程,然后在其中将它们分析并传递给其他线程.我注意到该应用存在内存泄漏,因为它最终会在启动后2-3小时内崩溃.如果我使用DDMS对堆进行概要分析,则会发现“数据对象”的数量逐渐增加(每分钟大约1500个).似乎那些1500在16字节和32字节的项目之间大致相等. 逐步禁用我的应用程序的某些部分后,我发现位置生成线程对处理程序的调用似乎导致了泄漏. 我逐渐将线...

android-(AudioManager)getSystemService(Context.AUDIO_SERVICE)导致内存泄漏【代码】

我有由AudioManager引起的内存泄漏.因此,我在代码中注释了这一行,以查看它是否可以解决我的问题:public class FireRoomActivity extends Activity {AudioManager am; protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);} }它确实解决了问题,而且我没有内存泄漏了.那是因为Context.AUDIO_SERVICE吗?如果是,那我该如何更换呢?...

Java-Android Admob插页式内存泄漏【代码】

我正在尝试在一些活动结束时显示插页式广告.问题是插页式广告似乎阻止了对活动进行垃圾回收,从而导致内存不足异常.我该如何解决?提前致谢.public class AdActivity extends FragmentActivity{//...protected InterstitialAd interstitial;@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//...// Create the interstitial.interstitial = new InterstitialAd(this);interstit...

Java-Android匿名asyncTask-是否会导致内存泄漏【代码】

在android中,我试图防止内存泄漏.我继承了一些旧代码,开发人员在其中创建了asyncTask作为匿名内部类,如下所示:void startAsyncTask() {new AsyncTask<Void, Void, Void>() {@Override protected Void doInBackground(Void... params) {while(true);//loop to keep thread alive forever.}}.execute(); }所以我在这个例子中使用循环只是为了让子线程永远活着,这样我就可以演示我的观点.所以从活动中,如果我调用startAsyncTask()会...

android-最初从位图泄漏了未引用的byte [],但被回收的()导致内存泄漏(直到活动停止)【代码】

我的位图内存泄漏导致内存不足.我在Android 5.0(Samsung S5)上运行了测试.我已经使用Android Studio(1.5.1 2.0.0预览版7)调查了此问题. HPROF内存转储显示有多个byte []完全对应于我临时使用的特定巨大位图.如果我确定保留对位图的引用,则Android Studio将向我显示一个11MB大小的位图和一个11MB浅尺寸的byte [].如果我不保留对位图的引用,则某些位图将被垃圾回收,并且某些位图最终以byte []的形式出现,而没有传入的引用(即,没有父级...

Android Google Maps API v2的内存泄漏【代码】

我在Google Maps Android API v2上遇到内存泄漏问题.在以下情况下,每当我的视图再次变为可见时,堆使用量将增加约85KB: >手机屏幕关闭(例如,按电源按钮后).>用户按“主页”按钮退出应用程序. 该应用最终因OutOfMemory异常而崩溃.屏幕旋转或通过“返回”按钮退出时不会发生泄漏.关于变通办法或此问题背后的原因有任何想法吗? 我的代码:public class LeakActivity extends FragmentActivity {@Overrideprotected void onCreate(Bun...

android – Volley缓慢而导致内存泄漏【代码】

在我的项目中,我使用volley来下载一个JSON流,我将其解析并显示在列表视图中.我使用以下方法加载我的数据:private void loadEventData(int year, final int month) {// get volley request queuerequestQueue = cpcApplication.getRequestQueue(getActivity());String url = "****************?year=" + year+ "&month=" + month;pd = ProgressDialog.show(getActivity(), "Loading Events", "Retrieving Data from Server");pd.se...

android – 远程服务的Messenger导致内存泄漏【代码】

我有一个应用程序使用Messenger接口在远程进程中与服务进行通信.以下是设置方式的基本架构: >应用程序生成几个需要访问服务的“操作”对象.>每个“操作”都包含一个包含在Messenger中的Handler,用于从服务接收响应数据>当操作执行时,它将Messenger包装为Intent并调用startService()将消息传递给远程服务>远程服务根据Intent的参数执行某些操作,然后通过向Messenger发送消息来返回响应. 以下是操作中的基本代码:public class Sess...

java – “警告:不要将Android上下文类放在静态字段中;这是内存泄漏(也打破了Instant Run)“【代码】

类似的问题一直是asked here,here和here,但背景与此截然不同,而且code that gave from this error是由Android和Android Studio的制造商编写的. 这是代码:public class MySingleton {private static MySingleton mInstance;private RequestQueue mRequestQueue;private ImageLoader mImageLoader;private static Context mCtx;private MySingleton(Context context) {mCtx = context;mRequestQueue = getRequestQueue();mImageLoad...

android中内存泄漏的逻辑

通常在c中有什么内存泄漏,如果我们分配了一个像这样的对象 Obj c = new Obj(); 如果我们这样做的话 c = b; (例) 我们失去了指向内存泄漏的对象c的指针. 题: 但是在android垃圾收集器中,当没有指向它们的指针时收集对象.那么为什么甚至在那之后会出现内存泄漏? 更新 所有答案都指向保持对未使用对象的引用导致内存泄漏.那就对了.但这是内存泄漏的唯一原因.除非是静态的,否则在活动结束时将释放保持指针.有位图和其他内存饥饿对象,...

java – Android内存泄漏,EMA可疑:“byte []”由“”加载

我正在写一个小的单活动Android应用程序,并得到一个内存泄漏错误,因为我找不到原点.首先,应用程序计算基本内容并以结构化方式显示结果.计算是微不足道的,虽然有一些图像,但它们大约有50个图标,总共少于4MB. 我已经安装了Eclipse Memory Analyzer并检查了它的堆转储,Leak Suspects Report说: 问题疑似1:477个“byte []”实例,由<系统类加载器>占用78.116.240(76,46%)个字节. dominator_tree 我既不知道那些字节数组是什么,也不知...

java – android地图,标记和内存泄漏

我正在阅读android文档http://developer.android.com/reference/com/google/android/gms/maps/MapFragment.html我偶然发现了这句话:Any objects obtained from the GoogleMap is associated with the view. It’s important to not hold on to objects (e.g. Marker) beyond the view’s life. Otherwise it will cause a memory leak as the view cannot be released.我不完全理解这一点,我不确定它是否适用于我,但我只是想检查一...

android – 从onPause中的片段中删除位置更新时内存泄漏【代码】

在我的应用程序中的一个片段中,我需要位置更新,以确定用户何时接近一个简短的位置列表,以便用户可以获得相关信息.当我在onConnected()回调中使用创建位置更新请求时LocationServices.FusedLocationApi.requestLocationUpdates(client, LocationRequest.create(), this);我还使用了删除onPause()方法中的更新LocationServices.FusedLocationApi.removeLocationUpdates(client, this);然而,即使我调用该方法来删除位置更新,我也会从泄...