我如何从AsyncTask中的数据库类中获取对象?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何从AsyncTask中的数据库类中获取对象?相关的知识,希望对你有一定的参考价值。

我需要在我的AsyncTask类中获取数据库类的对象。主要问题是,我不能参考“getApplicationContext();”所以我不能正确使用这个类的方法。我在这里需要我的数据库类对象,因为我想用数据库中的数据填充微调器。我该怎么做?我不能扩展AsyncTask 2个班级。我将在下面发布一些我想要使用的方法的代码。

主要信息

@Override
public Dialog onCreateDialog(int id){
    switch (id){
        case PLEASE_WAIT:
            ProgressDialog dialog = new ProgressDialog(this);
            dialog.setTitle("Looking for database with exercises");
            dialog.setMessage("Please wait ...");
            dialog.setCancelable(true);
    }
    return null;
}

的AsyncTask

public class AsyncTaskDB extends  AsyncTask<Void, Void, Void>{
Activity activity;

public AsyncTaskDB(Activity activity){
    this.activity = activity;
}


@Override
protected void onPreExecute() {
    activity.showDialog(MainActivity.PLEASE_WAIT);

}

@Override
protected Void doInBackground(Void... voids) {
    try {
        Thread.sleep(2000);
    }catch (InterruptedException e){
        e.printStackTrace();
    }
    return null;
}

@Override
protected void onPostExecute(Void result) {
    databaseHelper db = new databaseHelper();
    activity.removeDialog(MainActivity.PLEASE_WAIT);

}
}

数据库

public boolean shouldPopulate(){
    return getCalfData().isEmpty() && getLegsData().isEmpty() && getBackData().isEmpty() && getAbsData().isEmpty() && getBicepsData().isEmpty() && getTricepsData().isEmpty() && getChestData().isEmpty() && getShouldersData().isEmpty();
}
答案

我不确定我是否正确理解了问题究竟是什么,所以如果这是错误的答案,请澄清您的问题并发布您调用AsyncTaskDB的DataBase.class和Activity.class的代码。

为什么你不能这样做AsyncTask

DataBase database = new DataBase();

以上是关于我如何从AsyncTask中的数据库类中获取对象?的主要内容,如果未能解决你的问题,请参考以下文章

在任何地方使用我的 AsyncTask 类中的变量

从 Activity 调用时,另一个 AsyncTask 类中的 ProgressDialog 未显示

如何从 android 中的 AsyncTask 获取 UI 参考

NullPointerException 在单独的 Asynctask 类中获取列表视图的适配器

如何将变量从 AsyncTask 返回到 Android 中的 Google Map 活动

从Asynctask ONPostExecute调用片段方法