AndroidのAsyncTaskクラスでカスタムhandlerを使用
849 ワード
よく知られているAsyncTaskはThread+handler実装であるが,このhandlerは我々によく制御されていない.私のニーズではAsyncTaskでカスタム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;
}
}