こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

AndroidアプリでSQLiteファイルを更新

随時更新されるデータベース(以下DB)のAndroidアプリを作成しています。

今回はそんなに大きなDBではないので

初回起動時:
assetフォルダにSQLiteファイルを用意しておく
起動時に「/data/data/[package_name]/」以下にSQLiteファイルをコピーしてDBを作成

次回起動時:
DBに更新があったかチェック
更新があった場合、WEB上に用意したSQLiteファイルをHTTP通信で取得
既存のSQLiteファイル(/data/data/[package_name]/)に上書き

という処理を書こうとしています。
初回起動時の処理は書けたのですが、
更新時の処理で、HTTPから取得したSQLiteデータを、どのように上書き保存したらよいのかわかりません。
処理はAsyncTask内でHTTP通信とともに行う予定です。

どなたかご教授お願いいたします。

投稿日時 - 2014-09-03 17:59:01

QNo.8741023

困ってます

質問者が選んだベストアンサー

更新チェックってどういう方式でやってるのだろうか?単純にファイル編集日付チェック?
SQLiteのデータベースファイルごと取得してるなら、そのままファイル上書きでいいだろう。データベース接続不要。っていうか接続してると上書きできないから、対象データベースファイルはまず閉じる、ファイル日付比較ならもとより開く必要もないが。
それぞれのデータにアクセスして内容比較してるなら、その時点で、変更用のデータもすでに持ってるはずなので、わざわざ、ファイル転送は不要と思う。変更用のSQL文作成して更新。

投稿日時 - 2014-09-07 13:14:01

お礼

ああごめんなさい、説明不足でした。
更新されたかどうかはWEB上の別ファイル(情報は最新の日付だけ)から取得して、
アプリ内にあらかじめ保管しておいた日付と照合、WEBから取得した日付の方が新しい場合、SQLiteファイルをWEBからDLするして上書き~という流れにしたかったのです。

書き方が分からなかったのはデータの上書き処理だけだったのですが、質問を投げた後、自分で調べて何とかできました。恥ずかしながらJAVA初心者なのにいきなりアプリ開発させられてるもんで色々細かい書き方が分からない状態なのです。これから精進します。

ありがとうございました。

投稿日時 - 2014-09-11 01:27:00

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問