重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

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

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

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

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

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

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

A 回答 (1件)

更新チェックってどういう方式でやってるのだろうか?単純にファイル編集日付チェック?


SQLiteのデータベースファイルごと取得してるなら、そのままファイル上書きでいいだろう。データベース接続不要。っていうか接続してると上書きできないから、対象データベースファイルはまず閉じる、ファイル日付比較ならもとより開く必要もないが。
それぞれのデータにアクセスして内容比較してるなら、その時点で、変更用のデータもすでに持ってるはずなので、わざわざ、ファイル転送は不要と思う。変更用のSQL文作成して更新。
    • good
    • 0
この回答へのお礼

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

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

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

お礼日時:2014/09/11 01:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!