public Bitmap downloadImage(final String url, final int resource, final onImageLoaderListener listener) { final String subUrl = url.replaceAll("[^\w]", ""); Bitmap bitmap = showCacheBitmap(subUrl); if (bitmap != null) { return bitmap; } else { final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); listener.onImageLoader((Bitmap) msg.obj, url); } }; // new Thread(new Runnable() { getThreadPool().execute(new Runnable() { @Override public void run() { Bitmap bitmap = getBitmapFormUrl(url, resource); Message msg = handler.obtainMessage(); msg.obj = bitmap; handler.sendMessage(msg); } }); } return null; } 这是报警告的模块,相关问题我已经百度到很多了,我觉得是自己调用得不对。 我在mainActivity里初始化数据时调用了这里,本想用异步线程调用的,但这里有new handler 所以不能用线程。 这个方法我是借用网上的,觉得很好用,所以一直在用,现在程序基本写完了,不是很想改这里了,因为很多地方都调用了这里, 问题二: 跪谢。。。 |
|
等待大神的指导…
|
|
45分 |
问题1:
handlerMessage里的消息,貌似应该要用switch-case结构,根据msg.what来处理 不这么写会报错 问题2: Handler handler=new Handler(new Handler.Callback() { @Override |
5分 |
非static 容易引起内存泄漏.
参考: http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1106/1922.html 建议使用 EventBus 事件总线框架 参考: http://blog.csdn.net/lmj623565791/article/details/40920453 |
好的~~~我先试试~~! |
|
你说的这个我看到过了·~~ |