0

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

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

它是怎么做的?

4

1 回答 1

0

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

如果您的外部类具有名称“MyActivity”(只是一个示例)并且您想访问它的附加功能,那么它将是:

MyActivity.this.getIntent().getExtras()


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

于 2012-04-26T08:43:35.907 回答