Android Handler防止内存溢出的写法

时间:2016年4月20日14:21:49

  1. static class MyHandler extends Handler {
  2. private WeakReference<Context> weakReference;
  3. public MyHandler(Context context) {
  4. weakReference = new WeakReference<>(context);
  5. }
  6. @Override
  7. public void handleMessage(Message msg) {
  8. XXActivity activity = (XXActivity) weakReference.get();
  9. if (activity != null) {
  10. activity.textView.setText(result);
  11. }
  12. }
  13. }

注意:高亮标记部分,需要将weakReference.get()获得的Context转换为想的Activity子类才能获取到当前Activity的相应控件,如果仅仅转换为Activity的话是无法获取到该Activity下的控件并进行操作的。

来自为知笔记(Wiz)

时间: 2024-10-10 17:31:07

Android Handler防止内存溢出的写法的相关文章

android createbitmap函数内存溢出,求解怎样进行处理out of memory溢出问题

android createbitmap函数内存溢出,求解怎样进行处理out of memory溢出问题 android createbitmap函数内存溢出,求解怎样进行处理out of memory溢出问题 android createbitmap函数内存溢出.求解怎样进行处理out of memory溢出问题 局部核心代码: bitmap = Bitmap.createBitmap(mSize.x, mSize.y, Config.ARGB_8888); cacheBitmap = Bit

android createbitmap函数内存溢出,求解如何进行处理out of memory溢出问题

android createbitmap函数内存溢出,求解如何进行处理out of memory溢出问题 android createbitmap函数内存溢出,求解如何进行处理out of memory溢出问题 android createbitmap函数内存溢出,求解如何进行处理out of memory溢出问题 局部核心代码: bitmap = Bitmap.createBitmap(mSize.x, mSize.y, Config.ARGB_8888); cacheBitmap = Bit

Android 基础学习--内存溢出和泄漏

过几天又要去面试了,所以整理一下知识点,以前知道,但是都没仔细想,可能在面试的时候答不全,如果各位觉得除了我总结的之外还有其它情况可以留言,谢谢! 一  什么是内存泄漏?怎么解决? 内存泄漏也称作“存储渗漏”,就是在内存中创建对象开辟的空间,在使用完毕后没有释放,或者无法释放,结果导致该空间一直没有释放.直到程序结束.即所谓内存泄漏. 我总结了以下,内存泄漏的原因:不再有用的对象被其他依然有用的对象所引用是导致内存泄漏的主要原因. 1 查询SQlite数据库后,游标没有关闭. 2 ListVie

Android中ImageView内存溢出

在使用ImageView加载图片时候,会报内存溢出错误: 操作过程:在应用中调用了相册,将uri加载到imageview中后,当再次进行同样操作就出现如上异常. 原因:读取完资源后没有对资源进行回收,而android中图片操作内存有限制,所以当再次调用就会溢出. 解决方法: 在activity中先创建对象: private Bitmap bitmap; 具体方法如下: protected void onActivityResult(int requestCode, int resultCode,

Android图片处理内存溢出学习

尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存. 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的 source,decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAsset(

android 防止bitmap 内存溢出

在android开发过程中经常会处理网络图片发送内存溢出,那么怎么解决这种问题? 思路: 下载到本地 通过网络获取和文件下载存放到手机中目录 代码: // 获取网络 public InputStream GetHttpInfo(String urString, String fun, String parm) throws Exception { HttpURLConnection connection = (HttpURLConnection) new URL(urString) .openC

Android Handler 避免内存泄漏的用法总结

Android开发经常会用到handler,但是我们发现每次使用Handler都会出现:This Handler class should be static or leaks might occur(null)这样的提示.Android lint就是为了提示我们,这样使用Handler会容易造成内存泄漏.但是你会发现其实改成static并没有什么用.因为这并没有解决这个问题的根本. 首先,我们得确认,为什么会有内存泄漏?因为Handler是基于消息的.每次new 出Handler,都会创建一个

Android Handler 防内存泄漏

package com.tv.ui.metro.utils; import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View; import com.thunder.ktv.thunderjni.thunderapi.TDHotspot;import co

android bitmap 防止 内存溢出

参考:http://blog.csdn.net/huangbiao86/article/details/8072128 1.读取图片用BitmapFactory.decodeStream() 和BitmapFactorty.decodeFile() 避免用BitmapFactory.decodeResource ,前两个函数调用JNI>>nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap,从而节省了java层的空间. 注意: 通过查看源代码