从另一个类调用活动的AsyncTask子类?

时间:2016-02-03 17:57:57

标签: android android-asynctask

我知道这类问题可能太旧了,但我对这件傻事有所了解。 我有一个AsyncTask类,它是一个活动类的子类,现在我想从另一个类调用它:以下代码显示我的意思:

{{1}}

请您告诉我该怎么做才能修复此代码?

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();