SQLiteOpenHelperを実行してそこにテーブルを作成し、onCreateメソッド内に行を挿入している間、SQLite(第1印象)はデータを一時的に保存するようです。Q: データを永続的に保存し、アプリが起動するたびに DB とテーブルを作成しない機能はありますか? 私が理解しているように、ユーザーがアプリを終了すると、データが殺されますか?
私の英語と下手な質問で申し訳ありません-私はAndroidが初めてです=)事前に感謝します。
4 に答える
あなたの第一印象は正しくありません。SQLiteテーブルはAndroidで永続的であり、アプリケーションのパッケージIDに基づいて特定のディレクトリにファイルとして存在します。
SQLiteOpenHelperのアイデアは、データベースの作成とデータベースのアップグレードを1つの場所にカプセル化することです。これにより、データベースを使用する残りのコードは、そのようなことを心配する必要がなくなります。ヘルパーと呼ばれ、ヘルパーが戻ったときにデータベースが呼び出されます。あるべき姿です。
そのため、ヘルパーには「onCreate」メソッド(データベースがまだ存在しない場合に使用されます)と「onUpdate」メソッド(データベースがすでに存在するがバージョン番号が異なる場合に使用されます)があります。
データベースが存在しない場合にのみ、データベースが作成されます。onCreate
メソッドが呼び出されるのはそのときだけです。作成されたデータベースは、明示的に削除するか、アプリをアンインストールするまで存在し続けます。
を使用してデータベースを作成している場合、オブジェクトを SQLiteOpenHelper
初めて使用するときに作成され、永続的になりますSQLiteOpenHelper
実際のデバイスでアプリケーションを実行して確認してください。エミュレータで使用している可能性があります。
エミュレーターでアプリケーションを起動するとデータベースが作成され、エミュレーターを閉じるとエミュレーターによって作成された一時的な環境が破棄されるため、元に戻すことはできません。実際のデバイスで実行するかどうかは、データベースをデバイスに永続的に保存する可能性があります。次にアプリケーションを開くと、既存のデータベースに接続され、その上で操作を行うことができます。
実際のデバイスを使用しているかエミュレータを使用しているかに関する情報を提供していません。それについて説明してください。
他に何かあれば教えてください - ありがとう。