Android的AsyncTask类中使用自定义handler
熟知的AsyncTask就是Thread+handler实现,但是这个handler并不能很好的被我们控制。在我的需求中希望在AsyncTask中使用自定义的handler,而且在必要的时候退出消息循环。实现思路如下:
AsyncTask中创建消息循环,然后启动handler目标操作,当操作结束后,结束消息循环,执行后续代码。
下面是代码:
class mAsyncTask extends AsyncTask { @Override protected Object doInBackground(Object... params) {// TODO Auto-generated method stub Looper.prepare(); MHandler mHandler = new MHandler(); ... //my action if(action is over){ mHandler.getLooper.quit();//当动作结束,退出消息循环,执行下面方法,如果不退出,下面的方法function()不会执行 } ... Looper.mLooper.loop(); function(); return null; }}