2016-10-13 8 views
-2

私はクラスを持っています。AsyncTaskで自分のデータベースを追加、削除、更新などしたい

developer.android.comのように、asynctaskクラスを使用してデータベースに追加、減算、更新、削除などを実行します。 私は私がで非同期タスククラスメソッドdoInBackgroundに渡す必要がありますparamsが何であるか理解していない私の(new DBTasksAsync.execute(?<--here)) 私はさらにそれが一般的な方法ではありません、このような私のAsynctask

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); 
    } 
} 
+0

あなたの質問は何ですか? – earthw0rmjim

+1

まあ、 'AsyncTask'の代わりに' AsyncQueryHandler'を使うべきでしょうか? – pskink

答えて

0

getWritableDatabase()getReadableDatabase()などの操作を実施するよう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

関連する問題