我知道这类问题可能太旧了,但我对这件傻事有所了解。 我有一个AsyncTask类,它是一个活动类的子类,现在我想从另一个类调用它:以下代码显示我的意思:
{{1}}
请您告诉我该怎么做才能修复此代码?
答案 0 :(得分:1)
查看代码我没有看到除了应用程序上下文之外你在Activity
本身引用任何内容的任何地方,因此你可以将ListSpdFiles
类移动到它自己的java文件中并将一个上下文传递给它构造函数,当你创建它的新实例时。
将此类放在ListSpdFiles.java文件中,使其不再是内部类。
public class ListSpdFiles extends AsyncTask<Void, Void, String[]> {
Context applicationContext;
public ListSpdFiles(Context context, String initiator, String path) {
this.initiator = initiator;
this.path = path;
applicationContext = context.getApplicationContext();
}
// The rest of your code still goes here. Replace other calls to
// getApplicationContext() with the new applicationContext field
}
您现在可以在Context
可用的任何地方使用此课程。您可以通过执行以下操作来创建新实例:
ListSpdFiles listSpdFilesTask = new ListSpdFiles(context, "someInitiator", "somePath");
listSpdFilesTask.execute();