0

作業中のアプリケーションをテストしていて、アプリケーションが作成したデータベースを削除して、Webサーバーからすべてのデータを新しいデータベースに読み戻すことができるようにしたいと考えました。

adbを起動し、data / data / my.applicaton.package / databasesに移動して、「rmmydatabase」を実行しました。これによりデータベースが削除されました(注:これまで何度も問題なく実行しました)。

アプリケーションを再度起動しましたが、驚いたことに、新しいデータベースが作成されませんでした。さらに驚くべきことに、私のアプリケーションにはデータがありました。私のアプリケーションはまだどこかからデータを引き出しています!データベースからカーソルを取得し、CursorAdapterを使用してリストにデータを入力します。したがって、明らかにデータベースから読み取ってます(キャッシュされているように見えますか?)。

正確にはどこから引っ張っているのですか、そしてその理由は何ですか?現在削除されているデータベースを指しています。

4

1 に答える 1

1

アプリを起動せず、ホーム/戻るを押してメイン画面に移動してから、adb マジックを実行していませんか? その場合、プログラムはバックグラウンドでまだ実行されており、データベースへの変更が正しく反映されていません。データベースに変更を加える前に、アプリケーションの DDMS で実行中のプロセスを強制終了する必要があります。次に、アプリケーションを起動して、変更が反映されているかどうかを確認します。

私はこの問題に何度も遭遇しました。

于 2010-09-16T19:08:55.863 に答える