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() {
			//需要抛到主线程的代码
		}
	});

猜你喜欢

转载自blog.csdn.net/u011068702/article/details/81088138
今日推荐