2

ウェブサーバーと Android アプリの間でデータを同期しようとしています。そのため、この素晴らしいアドバイスに従っています: Android アプリとウェブサーバーの間でデータを同期する

現在、私はコンテンツ プロバイダーの最初の部分に取り組んでいます。このために、私はこのチュートリアルを見つけました: http://www.vogella.com/articles/AndroidSQLite/article.html

そしてそのチュートリアルでは、テーブルごとに 1 つの SQLiteOpenHelper を実行する必要があると提案しています。私にとっては問題なく機能していましたが、テーブルごとに1つのファイルがあるため、少し奇妙であることに気付きました

このような:

public class AppUserDatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "appusertable.db";
private static final int DATABASE_VERSION = 1;

public AppUserDatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Method is called during creation of the database
@Override
public void onCreate(SQLiteDatabase database) {
    AppUserTable.onCreate(database);
}
}

それで、私はいくつかの調査を開始し、これを見つけました:データベース内のテーブルごとに 1 つの SQLiteOpenHelper が必要ですか? 特にこのリンク: http://blog.foxxtrot.net/2009/01/a-sqliteopenhelper-is-not-a-sqlitetablehelper.html、そしてそれは私にとって非常に理にかなっています。

さて、私の問題は、テーブルごとに 1 つの ContentProvider を用意することも実際には非常に理にかなっているということです。

public class AppUserContentProvider extends ContentProvider {     
@Override
public boolean onCreate() {
    database = new AppUserDatabaseHelper(getContext());
    return false;
}
}

これにより、データベースへのアクセスも可能になります。

私の質問は次のとおりです。すべてのテーブルに対して巨大な ContentProvider を実行する必要がありますか? または、すべての ContentProvider 間で共有する必要があるデータベースを作成する別の方法はありますか?

あなたが私を助けてくれることを願っています アドバイスありがとう

4

1 に答える 1