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下的控件并进行操作的。




posted @ 2016-04-20 14:32  五月的雨  阅读(641)  评论(0编辑  收藏  举报