私はレガシーコードを扱っています。私の仕事は、非同期タスクの結果を処理することです。
dispatchMessage メソッド内の外部オブジェクトへのアクセスに固執しています。それを達成する手段はありますか、それともシングルトンまたは静的プロパティを使用する必要がありますか?
ここまでで、非同期モードでの実行を担当するクラスを作成しました。
private class BackgroundTask extends AsyncTask<Object, Void, Boolean>
{
@Override
protected Boolean doInBackground(Object... params){
// ...
}
@Override
protected void onPostExecute(Boolean result){
// ...
}
}
OnPostExecute または doInBackground メソッド内で、ハンドラーを使用してメッセージを送信したいので、いくつかの単純なものをプッシュします。
Message m = new Message();
Bundle b = new Bundle();
b.putString("sizeKEY", "size " + _count);
m.setData(b);
_handler.sendMessage(m);
そして、ここで外部オブジェクトにアクセスする必要があります。
new Handler(){
@Override
public void dispatchMessage(Message msg) {
super.dispatchMessage(msg);
// get access to, say, Activity property or method here
}
}
それはどのように行われますか?