0

Notepadv#チュートリアルを終了しました。次に、コンソール(adbシェル)を介して「データ」ファイルのNotepadv3チュートリアルに接続します。何かやってみました。

  1. ノートテーブルを削除して、再実行します。
    • 動作しない。
  2. データファイル(dbファイル)を削除して、再実行してください。
    • 仕事。

Notepadv#チュートリアルを使用した場合は、NotesDbAdapterクラスでの前処理について知っているかもしれません。そのコード位置で、コンストラクターで「dbの選択」、onCreateメソッドで「テーブルの作成」、onUpgradeメソッドで「テーブルの更新」を見つけました。

その方法により、onCreateがコンストラクターの後に呼び出されたときにデータベース(データという名前のファイル)がテーブルを作成します。まさか、それはうまくいきませんでした。そのナンセンスによって引き起こされた2つ以上の似たようなテスト。誰かがノートテーブルをコンソールにドロップしますか?createが機能しない理由がわかりません。

ps-愚かな英語については申し訳ありません。

4

2 に答える 2

3

データベースのonCreateメソッドは、データベースが存在しない場合にのみデータベースを作成します。破損している場合(つまり、Notesテーブルを削除した場合)、または存在しているが空の場合は、それを検出して回復するのはアプリケーションの責任です。

これが、テーブルを削除するとメモ帳の例が失敗する理由です(データベースが存在するため、onCreateは呼び出されず、データベースは破損しています)が、データベースを削除すると、onCreateが呼び出され、データベースが再作成されるため、メモ帳は機能します。

だから基本的に、それをしないでください:-)

詳細な説明については、 SQLiteOpenHelperのドキュメントを参照してください。

于 2011-01-28T10:12:26.870 に答える
0

アプリケーションをアンインストールするか、[設定]-> [アプリケーションの管理]からアプリケーションデータを削除しようとしましたか?

于 2011-01-28T09:00:14.683 に答える