2011-12-21 2 views
1

私のアプリケーションに必要なデータを最初から挿入したい、私はこれらのデータを使用します。そして、私は一度挿入したい、そして重複がなければならない。したがって、 "onCreate"では、私は次のようにしています。テーブルの行数(学生など)が0の場合、学生を挿入します。私はそれがこれを行う最善の方法だとは思わない。したがって、より良い方法があるかどうかを知りたい。Androidデータベースの初めに挿入

+1

「最初から」とは、ユーザーがアプリを使用して任意のセッションを開始したときを意味しますか、初めてアプリを使用したときを意味しますか? – Argyle

+0

インストール後のことです。アプリのインストール中にデータが挿入され、その後、ユーザーがアプリを起動すると、挿入操作をしてはいけません。 – BCK

答えて

5

データベースをインストール時に作成し、それ以外の時間に使用しない場合は、あらかじめ設定されたデータベースをAPKに組み込みリソースとしてパッケージ化するだけです。これには、アプリを単純化するという利点があります。

多かれ少なかれバックあなたを入れている代わりに、あなたはあなたのデータベースのためのSQLiteOpenHelperを実装する場合、あなたはSQLiteOpenHelper.onCreate(SQLiteDatabase)中に挿入何がしかのアプリあなたの最初の実行のいずれかを挿入されたり、誰かがすべてのアプリのデータをクリアしたときに(とにかく新鮮なインストールに)。 SQLiteOpenHelperスーパークラスは、getWritableDatabase()またはgetReadOnlyDatabase()のいずれかのメソッドを呼び出してデータベース参照を取得するときに、作成コードを実行するかどうかを判断します。

Androidはデスクトップソフトウェアと同じようにインストーラを実際に実行させるわけではありません。セットアップ作業を行う必要がある場合は、アプリがいつ実行されたかを検出して覚えておく必要があります。

+0

まずはお返事ありがとうございます。最初のオプションの例を挙げることができますか?私はSQLiteOpenHelperを使用して、私の主な活動の "onCreate"にデータを挿入しています。したがって、アプリ起動時に常に同じデータが挿入されます。 – BCK

+0

ビルドプロセス中にSQLiteデータベースファイルを作成し、それを[raw resource](http://developer.android.com/guide/topics/resources/providing-resources.html)として組み込みます。詳細は、その表を参照してください。 – Argyle

+0

あなたの 'SQLiteOpenHelper'実装の' onCreate(SQLiteDatabase) 'コールにあなたのinsert文を置く必要があります。テーブル作成ステートメントがある場所はほぼ確実です。データは同じ場所に挿入されますか?データベースファイルが初めて作成されたときにのみ挿入が行われます。 – Argyle

関連する問題