在谷歌搜索解决方案后,我的应用程序在执行数据库操作时卡住了,建议我使用 AsyncTask,这样主线程就不会被阻塞。
我创建了单独的类并扩展了 SQLiteOpenHelper 并实现了“OnCreate”和“OnUpgrade”方法。但要实现 AsyncTask,我需要扩展“AsyncTask”。现在我的问题是我已经扩展了一个类,我不能为同一个类扩展另一个类。
我的代码是这样的。
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();
}
}//
谁能建议我如何在 AsyncTask 中使用 SQLiteOpenHelper 执行数据库操作。
谢谢湿婆