我需要在我的AsyncTask
类中获取数据库类的对象。主要问题是,我无法引用“ getApplicationContext();
”,因此无法正确使用此类中的方法。我这里需要数据库类的对象,因为我想用数据库中的数据填充微调器。我应该怎么做?我无法将AsyncTask
扩展为2个课程。我将在下面发布一些我想使用的方法的代码。
MainActivity
@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;
}
AsyncTaskDB
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();
}
答案 0 :(得分:0)
我不确定我是否正确理解了到底是什么问题,因此,如果这是错误的答案,请阐明您的问题,并在调用AsyncTaskDB的地方张贴您的DataBase.class和Activity.class代码。
为什么不能在AsyncTask
中那样做?
DataBase database = new DataBase();