SQLite
 sql >> база данни >  >> RDS >> SQLite

Как да използвате клас за помощник на базата данни в клас на asynctask, работещ върху различен клас

Опитайте това:

 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
     }
 }

Можете да извикате тази AsyncTask със следния ред - ако приемем, че сте в дейност:

 new FetchData().execute(this);

ако не можете да промените забавянето на AsyncTask, тогава можете да опитате да използвате статична променлива - въпреки че не е толкова ефективна и красива като забавянето на AsyncTask. Опитайте това:

Class myStatic{
private  static Context mContext;


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

static public Context getContext(){
return mContext;
}

}

и в основния си код, преди да извикате AsyncTask, извикайте това:

myStatic.setContext(this);

във вашия метод doInBackground на вашата AsyncTask, добавете това:

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. Как работи SQLite Avg().

  2. Как да синхронизирам с локална база данни и да анализирам?

  3. Добавете колона към съществуваща таблица в SQLite

  4. SQLite JSON_PATCH()

  5. SQLite заявка:да получите всички колони на ред (android)?