解决handler 可能发生的 内存泄漏的问题

来源:互联网 发布:大乐透,简单公式算法 编辑:程序博客网 时间:2024/06/05 06:55

//线程
static int time=0;

public void xunhuan(){
new Thread(){
@Override
public void run() {
super.run();

       while (true){           try {               sleep(2000);                time++;               handler.sendEmptyMessage(0);           } catch (InterruptedException e) {               e.printStackTrace();           }       }   }

}.start();
}

// 解决handler 可能发生的 内存泄漏的问题
static class MyHandler extends Handler{
// MainActivity 当前类
WeakReference weakReference
public MyHandler(MainActivity context){
weakReference = new WeakReference<>(context);
}

@Overridepublic void handleMessage(Message msg) {    super.handleMessage(msg);    if (weakReference!=null){       vp.setCurrentItem(time);    }}

};

0 0
原创粉丝点击