title: How to perform database operations using Async Task
body: <p>My application is getting stuck while performing database operation after googling for solutions it was suggested that I use AsyncTask so that main thread doesn't get blocked.</p>
  
  <p>I have created seperate class and extended SQLiteOpenHelper and implemented "OnCreate" and "OnUpgrade" method. But to implement AsyncTask I need to extend "AsyncTask". Now my issue here is that I have already extended one class and I can't extend another class for the same class.</p>
  
  <p>My code is something like this.</p>
  
  <pre><code>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();
          }
  
  
      }//
  </code></pre>
  
  <p>Can anyone suggest how I can perform database operations with SQLiteOpenHelper within an AsyncTask.</p>
  
  <p>Thanks
  Siva</p>