0

サーバーからデータをダウンロードした後、いくつかのデータをデータベースに保存する必要があります。データを正常にダウンロードしましたが、sqlite データベースに更新するには時間がかかります。その場合、ユーザーがアプリをバックグラウンドに保ち、ユーザーがアプリをフォアグラウンドに戻した後、数分後にクラッシュしました。

ユーザーがアプリをフォアグラウンドに戻すと、ユーザーが残した同じ画面をロードするのに時間がかかり、画面が表示される前にアプリがクラッシュしました。

これについて私を助けてください....このプロセスをバックグラウンドでもフォアグラウンドでも問題なく実行するにはどうすればよいですか。

4

3 に答える 3

3

これを試して:

[self performSelectorInBackground:@selector(dataBaseUpdateMethod:)
                       withObject:dictForUpdatingTheDatabase];

ここで、dataBaseUpdateMethodはデータベースを更新するメソッドであり、dictForUpdatingTheDatabaseはNSDictionaryオブジェクト(または任意のタイプの他のオブジェクト)です。

お役に立てれば。

于 2013-01-21T06:57:17.593 に答える
0

これを使って:

[self performSelectorInBackground:@selector(updateDB:) withObject:dictionary];
于 2013-01-21T07:00:49.250 に答える
0

バックグラウンド スレッドで sqlite データベースを更新します (を使用performSelectorInBackground)。

その場合、ユーザーがフォアグラウンドでアプリを実行しようとしているときにメイン スレッドで更新している場合、アプリケーションのメイン スレッドは更新 DB タスクを完了するためにビジーであり、アプリケーションをロードできず、クラッシュが発生します。

于 2013-01-21T06:51:20.837 に答える