簡體   English   中英

我如何從AsyncTask中的數據庫類中獲取對象?

[英]How i can get object from my database class in 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;
}

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

我不確定我是否正確理解到底是什么問題,因此,如果這是錯誤的答案,請澄清您的問題,並在調用AsyncTaskDB的地方張貼您的DataBase.class和Activity.class代碼。

為什么您不能在AsyncTask那樣做?

DataBase database = new DataBase();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM