在params中传递MainActivity

时间:2014-02-26 03:59:38

标签: android parameters android-asynctask applicationcontext

我需要在UI线程中启动AsyncTask,但构造函数有(MainActivity parentActivity) parametr。我真的不明白为什么要实施它以及我必须如何传递它。

这里Eclipse说“无法将MainActivity解析为变量”。与Activity.MainActivity相同。

new DownloaderTask(MainActivity).execute();`

构造函数。

public DownloaderTask(MainActivity parentActivity) {
    super();

    mParentActivity = parentActivity;
    mApplicationContext = parentActivity.getApplicationContext();

}

2 个答案:

答案 0 :(得分:0)

更改此行...

new DownloaderTask(MainActivity).execute();

到此......

new DownloaderTask(MainActivity.this).execute();

您传递Context MainActivity而不是活动...因此在DownloaderTask()构造函数中,参数将为Context类型而不是MainActivity。 ..构造函数应如下所示......

public DownloaderTask(Context context) {
    super();

    mApplicationContext = context;

}

答案 1 :(得分:0)

如果您从MainActivity

直接调用 ,则可以如下调用
new DownloaderTask(this).execute();

或者如果您从内部课程进行调用,则可以调用

new DownloaderTask(MainActivity.this).execute();