ユーザーがsqliteDBをクエリできるようにするアプリケーションがあります。アプリが起動すると、URLをダウンロードして、バックグラウンドスレッドにデータベースの更新があるかどうかを確認します。
残念ながら、これにより、ユーザーが更新の実行中にデータベースにクエリを実行しようとする関数を選択すると、ロックが発生します。
私の質問は2つあります。
このシナリオで競合を回避するための最良の戦略は何ですか。
- データベースを別のファイルにコピーして更新し、コピーして戻します
- ある種のシングルトンを操作し、それを使用してキュー内の操作をスケジュールします。
- ループしてロックが開くのを待ちます(ただし、ユーザーを抑えたくありません)
アプリが終了する直前までバックグラウンドスレッドを一時停止し、アプリケーションが終了する直前に更新を実行することは可能ですか?
誰かアドバイスがあれば、ユーザーがアプリの使用を停止せずにアップデートを実行する必要があるので、感謝します。