ここに私がしたいことがあります。私はウェブサイトのデータベースからデータをダウンロードし、それをsqliteに保存したいと思います。私たちは、このアプリケーションのオフラインバージョンを使用するためにこれをやっています。これは単なるビューなので、更新と削除のメソッドはありません。あまりにも多くのデータを含むAndroid jsonのsqliteへの挿入
私はAndroid Sqliteにjsonをデータをほとんど入れずに挿入しようとしていますが、成功しています。しかし、ここで私は長いデータでそれをやろうとすると問題が発生します。私はテーブルに約19,000行を挿入する必要があります。私はクラスがよくやってますが、その多くのデータを挿入する際には時間がかかるとAndroidがエラーを与えているユーザーに進捗
のアイデアを与えるためにUiThread上で実行されますProgressDialogを使用しています。時折、「応答時間が長すぎます:待機またはキャンセル」というエラーが表示されます。時には、このような...
Unfortunately, the App had stopped
しかし、ログに、私はそれがまだテーブルに挿入されていることを確認できるので、アプリケーションが実際に停止しませんでした。 Androidはそのエラーを示しています。私はそれがまだ挿入されていることを認識していないと思うか、問題のように思われるか分かりません。エラーのダイアログボックスで[OK]をクリックすると、ログの挿入が停止します。
ui.setting.UserSettingsActivity: insertEquipmentProfile: 16494
ui.setting.UserSettingsActivity: insertEquipmentProfile: 16495
ui.setting.UserSettingsActivity: insertEquipmentProfile: 16496
はその後、その後、それはエラーのこの種類をログに記録します。
E/SQLiteLog: (5) database is locked
E/SQLiteDatabase: Failed to open database '/data/data/com.name.android.name/databases/name_android_offline.db'.
android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
私は何をすべき?このログが重要かどうかは分かりませんが、これを追加します。タイムアウトのようなものですが、分かりません。
W/ActivityManager: Activity pause timeout for ActivityRecord{f2e77e1 u0 ui.setting.UserSettingsActivity t762 f}
私も自分のデータベース・ヘルパー・メソッド内でトランザクションを追加しようとしましたが、それは助けにはなりませんでした。
database.beginTransaction();
database.setTransactionSuccessful();
database.endTransaction();
テーブルにあまりにも多くの行を挿入する方法はありますか?私は私の問題を説明するために何を提供するのか分からないが、私のコードは4000行を挿入する際にうまく動作するので、あまりにも多くのデータを挿入しながらアプリケーションをクラッシュさせない方法を探している。
メインスレッドに挿入していますか?同期/マルチスレッドですか? –