だから、これは私のアプリがやっていることです。私はインターネット上に場所のリストを含むファイルを持っています。そのファイルを読み込んで、携帯電話のデータベースに場所を保存しています。また、24時間ごとに同じファイルをダウンロードして、更新があるかどうかを確認しています。次に実行したいのは、そのファイルに現在のバージョンのファイルを入れ、ダウンロードするときにそのバージョンを前のバージョンと確認し、異なる場合は現在のテーブルを削除してロードすることです。再びすべての場所。
現在、私のアプリは次のことを行っています。IntentServiceをトリガーするアラームがあり、ファイルをダウンロードして、データベース内にあるかどうかを各場所で確認し、ない場合は挿入します。
欲しい:IntentServiceは最初に、ダウンロードされたファイルのバージョンが前のものと異なるかどうかを確認し、異なる場合はテーブルを削除し、ファイルのすべての場所を新しいテーブルに挿入します。
ContentProviderとSQLiteOpenHelperを使用してデータベースを管理しています。どういうわけかSQLiteOpenHelperのonUpgradeメソッドをトリガーする必要があると思いますが、これを正確に行う方法がわかりません。
どんな助けでもいただければ幸いです。
データベースを更新するために必要なすべてのデータベース操作(ALTER TABLE、DROPなど)をonUpgradeメソッドに入れる必要があり、データベースのバージョンを増やすことを忘れないでください。
データベースのバージョンを増やすと、更新後のアプリケーションの最初の起動時にonUpgradeメソッドが自動的に呼び出されます。
編集:
静的フィールドを使用して、データベースのバージョンを設定できます。
private static final int DATABASE_VERSION = 2;
そしてスーパーコンストラクターに渡します:
super(context, DATABASE_NAME, null, DATABASE_VERSION);
データベースを更新する必要がある場合は、DATABASE_VERSIONを増やします(onUpgradeを呼び出します)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加