1、使用HandlerThread
HandlerThread实际上就一个Thread,只不过它比普通的Thread多了一个Looper。
我们可以使用下面的例子创建Handler :
HandlerThread thread = new HandlerThread("MyHandlerThread"); thread.start(); mHandler = new Handler(thread.getLooper()); mHandler.post(mBackgroundRunnable);
创建HandlerThread时要把它启动了,即调用start()方法。
然后创建Handler时将HandlerThread中的looper对象传入。
那么这个mHandler对象就是与HandlerThread这个线程绑定了(这时就不再是与UI线程绑定了,这样它处理耗时操作将不会阻塞UI)。
最后把实现耗时操作的线程post到mHandler的消息队列里面。
注意的是,mBackgroundRunnable这个线程并没有启动,因为没有调用start()方法。
完整demo:
public class MainActivity extends Activity implements OnClickListener{
public static final String TAG = "MainActivity";
private Handler mHandler;
private boolean mRunning = false;
private Button mBtn;
@Override