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)