我需要在UI线程中启动AsyncTask,但构造函数有(MainActivity parentActivity) parametr。我真的不明白为什么要实施它以及我必须如何传递它。
这里Eclipse说“无法将MainActivity解析为变量”。与Activity.MainActivity相同。
new DownloaderTask(MainActivity).execute();`
构造函数。
public DownloaderTask(MainActivity parentActivity) {
super();
mParentActivity = parentActivity;
mApplicationContext = parentActivity.getApplicationContext();
}
答案 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();