访问dispatchMessage中的外部变量

时间:2012-04-26 08:40:24

标签: java android

我正在处理遗留代码。我的任务是处理异步任务的结果。

我一直在访问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 
            }
        }

怎么做?

1 个答案:

答案 0 :(得分:0)

您可以使用<MyOuterClass>.this来访问外部对象(因为您在内部类中)。

如果您的外部类具有名称“MyActivity”(仅作为示例)并且您想要访问其附加内容,那么它将是:

MyActivity.this.getIntent().getExtras()

请参阅
http://www.java-forums.org/java-tip/6296-inner-class-accessing-outer-class.html