Мне нужно получить объект класса базы данных в моем классе 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();
}