Android之让代码跑在主线程(无context上下文)的封装

1、问题

有一段代码需要跑在主线程里面,但是没有context上下文,一开始直接想到runOnUiThread,好像不行

runOnUiThread(new Runnable(){
    public void run(){
    //执行更新ui的操作
    }
});

2、解决办法

封装一个handler的单例类

import android.os.Handler;
import android.os.Looper;

public class MainHandler extends Handler {

private static volatile MainHandler mInstance;

private MainHandler() {
super(Looper.getMainLooper());
}

public static MainHandler getInstance() {
if (mInstance == null) {
synchronized (MainHandler.class) {
if (mInstance == null) {
mInstance = new MainHandler();
}
}
}
return mInstance;
}
}

使用如下

MainHandler.getInstance().post(new Runnable(){
@Override
public void run() {
//需要抛到主线程的代码
}
});
(0)

相关推荐