SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak używać klasy databasehelper w klasie asynctask pracującej na innej klasie?

Spróbuj tego:

 private class FetchData extends AsyncTask<Context, Void, Void> {
     protected Long doInBackground(Context... c) {
         Context myContext = c[0];
// Do your things here....
     }


     protected void onPostExecute() {
// Insert your post execute code here
     }
 }

Możesz nazwać to AsyncTask w następującym wierszu - zakładając, że jesteś w działaniu:

 new FetchData().execute(this);

jeśli nie możesz zmienić opóźnienia AsyncTask, możesz spróbować użyć zmiennej statycznej — chociaż nie jest ona tak wydajna i ładna jak zwalnianie AsyncTask. Spróbuj tego:

Class myStatic{
private  static Context mContext;


static public void setContext(Context c);
mContext = c;
}

static public Context getContext(){
return mContext;
}

}

a w głównym kodzie, zanim wywołasz AsyncTask, wywołaj to:

myStatic.setContext(this);

w metodzie doInBackground swojego AsyncTask dodaj to:

Context myContext = myStatic.getContext();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak sprawdzić, czy użytkownik jest obecny w bazie danych Sqlite za pomocą Androida?

  2. chmod nie powiodło się:EPERM (operacja niedozwolona) w Androidzie?

  3. Co to jest wygenerowana kolumna?

  4. Jak uniknąć używania + w numerze wersji z SQLiteAssetHelper?

  5. Ustaw domyślną wartość kolumny liczb całkowitych SQLite