我正在处理遗留代码。我的任务是处理异步任务的结果。
我一直无法访问 dispatchMessage 方法中的外部对象。有什么方法可以实现它还是应该使用 Singleton 或静态属性?
到目前为止,我已经创建了一个负责在异步模式下运行的类。
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
}
}
它是怎么做的?