Comment effectuer des opérations de base de données à l'aide d'une tâche asynchrone

Ma demande est coincé lors de l'exécution d'opération de base de données après googler pour les solutions, il a été suggéré que j'utilise AsyncTask, de sorte que le thread principal n'est pas bloqué.

J'ai créé séparée de la classe et de l'étendue SQLiteOpenHelper et mises en œuvre "OnCreate" et "OnUpgrade" la méthode. Mais pour mettre en œuvre AsyncTask j'ai besoin d'étendre "AsyncTask". Maintenant, mon problème est que j'ai déjà étendue sur une classe et je ne peux pas étendre une autre classe pour la même classe.

Mon code est quelque chose comme cela.

import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;

import com.example.project.R;

public class Database  extends SQLiteOpenHelper{

    static final String dbname="Project";
    static final int dbversion=1;

    TableA r=new TableA();


    SQLiteDatabase db;
    private Context Context;
    public Database(Context context) {
        super(context,  dbname, null, dbversion);
        try{
        db=getWritableDatabase();
        // TODO Auto-generated constructor stub
        if (db.isOpen()){

            System.out.println("Database is opened");
        }
            else{


                System.out.println("Database is not opened");
            }

        }
        catch(Exception e){

            Log.e(dbname, e.getMessage());

        }
    }


    @Override
    public void onCreate(SQLiteDatabase db) {

        // TODO Auto-generated method stub
        try{
        db.beginTransaction();

        db.execSQL(r.r_Table);


        db.insert(r.Tablename, null, r.insertdata());
        db.setTransactionSuccessful();
        retrivedata();
        }
        catch(Exception e){

            android.util.Log.e(r.Tablename, e.getMessage());

        }

        finally{

            db.endTransaction();
        }


    }//

Quelqu'un peut-il suggérer comment je peux effectuer des opérations de base de données avec SQLiteOpenHelper au sein d'une AsyncTask.

Merci
Siva

source d'informationauteur Siva