我想在AsyncTask中添加,删除,更新我的数据库

时间:2016-10-13 07:29:20

标签: java android android-asynctask

我的课程MyDBHandler正在延长SQLiteOpenHelper

我想按照asynctask的建议,通过developer.android.com类对我的数据库执行添加,减去,更新,删除等操作。 我不明白我应该传递给我doInBackground中的异步任务类方法(new DBTasksAsync.execute(?<--here))的参数是什么 因为我将在我的Asynctask

中进一步实现getWritableDatabase()getReadableDatabase()等操作
public class MyDBHandler extends SQLiteOpenHelper {
    private static final String TEXT_TYPE = " TEXT";
    private static final String COMMA_SEP = ",";
    private static final String SQL_CREATE_ENTRIES =
        "CREATE TABLE " + MyDatabase.DatabaseEntry.TABLE_NAME + " (" +
                MyDatabase.DatabaseEntry._ID + " INTEGER PRIMARY KEY," +
                MyDatabase.DatabaseEntry.COLUMN_NAME_TITLE + TEXT_TYPE + COMMA_SEP +
                MyDatabase.DatabaseEntry.COLUMN_NAME_SUBTITLE + TEXT_TYPE + " )";

    private static final String SQL_DELETE_ENTRIES =
        "DROP TABLE IF EXISTS " + MyDatabase.DatabaseEntry.TABLE_NAME;
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "MyDBHandler.db";
    public MyDBHandler(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    public void doChanges(){
        DBTasksAsync dbTasksAsync=new DBTasksAsync();
        dbTasksAsync.execute();
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(SQL_CREATE_ENTRIES);
    }

    @Override
    public void onOpen(SQLiteDatabase db) {
        super.onOpen(db);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)    {
        db.execSQL(SQL_DELETE_ENTRIES);
        onCreate(db);
    }
}

1 个答案:

答案 0 :(得分:0)

在SQLiteOpenHelper中添加后台操作并不常见。您可以使它保持同步,并且正在使用它的组件将负责异步。或者,您可以将具有并发性的逻辑移动到单独的Repository类。

在后台执行整体数据库操作与执行任何其他短期后台操作没有太大差别。你可以找到很多文章: http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html,https://developer.android.com/training/best-background.htmlhttps://developer.android.com/reference/android/content/AsyncTaskLoader.html