使用静态类中的AsyncTaks调用类

时间:2014-02-19 15:31:18

标签: java android android-asynctask

我正在尝试初始化一个调用另一个使用AsyncTask的类的类。我正在使用GetDataFromDB gDataFromDB = new GetDataFromDB()但是没有初始化类,它只是让我可以访问类中的任何静态方法。那么我该怎么做才能运行onCreate方法呢?我尝试过使用intent但是一直出错,因为这是一个静态类

public class FacadeDataFromDB extends Activity {

static ArrayList<HashMap<String, String>> visitorsList;
private static FacadeDataFromDB dataFromDB;
static boolean accessDB = false;

private FacadeDataFromDB() {

}

public static void initInstance() {

}

public static FacadeDataFromDB getInstance() {
    if (dataFromDB == null) {
        // Create the instance
        dataFromDB = new FacadeDataFromDB();
    }
    return dataFromDB;
}

public static void setData() {
    if (!accessDB) {
        GetDataFromDB gDataFromDB = new GetDataFromDB();
        accessDB = true;
    }
    // visitorsList = gDataFromDB.returnInfoFromDB();
}

public static ArrayList<HashMap<String, String>> getVisitorForDay() {
    // TODO Auto-generated method stub
    setData();
    return visitorsList;
}

}

GetDataFromDB是我正在调用的另一个类。当前类是一个静态类并使用单例,因为我只想从类中初始化从db获取数据。如果您有更多问题或希望我发布代码,请告诉我。感谢

2 个答案:

答案 0 :(得分:2)

在我看来,您的两个班级FacadeDataFromDB GetDataFromDB不应该继承Activity

为GUI和用户交互做了活动(我的示例中没有看到任何内容),并且它们的生命周期由框架管理:您永远不会使用new手动创建它们。

请参阅android教程:https://developer.android.com/guide/components/activities.html和Activity javadoc:https://developer.android.com/reference/android/app/Activity.html

答案 1 :(得分:0)

我不确定您是否完全了解Android运行时。您应该使用Intent个对象启动活动,而不是使用new关键字创建活动。为确保在您的Activity中调用onCreate()方法,您可以从其他Activity/Context Intent intent = new Intent(currentContext, FacadeDataFromDB.class);启动显式Intent。

此外,谈到活动,你不应该使用私有构造函数。请参阅此帖子了解原因why