0

アプリケーションをバックグラウンドに移動してからフォアグラウンドに戻すと、アクティビティ インジケーターがフリーズするという問題が発生しています。アプリケーションがバックグラウンドに移行したときに、ネットワーク経由で一部のデータをロードしている可能性があります。したがって、ユーザーにアクティビティ インジケーターを表示します。タスクがバックグラウンドで終了することを確認するコードを追加しました。アプリケーションがすぐにフォアグラウンドに移動され、データが完全にロードされていない場合、スピナーは画面に表示されたままになりますが、回転が停止します。データの読み込みが完了すると、スピナーが消えます。

アクティビティ インジケーターがフリーズする理由と、考えられる解決策を教えてください。

ありがとう。

4

1 に答える 1

5

バックグラウンドでアプリが UI を更新する理由はほとんどありません。

一つには、誰がそれを見るためにそこにいますか?インジケーターがフリーズするもう 1 つの理由は、バックグラウンドに移行すると、デバイスのバッテリーを不必要に消耗させ、フォアグラウンド アプリの速度を低下させる UI の更新とアニメーションが停止することです。

Apple の優れたiPhone アプリケーション プログラミング ガイド-applicationWillEnterForeground:によると、アプリケーションがフォアグラウンドになるたびにアプリ デリゲート メソッドが呼び出されます。

このメソッドをオーバーライドして、ここでウィジェットを起動するロジックを追加できます。または、クラス (View Controller など) をサブスクライブして、UIApplicationWillEnterForegroundNotification通知をリッスンします。この通知をリッスンする場合、その時点でアプリケーションが何を行っていても、UI の状態を更新するセレクターを呼び出すことができます。

于 2010-07-15T19:39:40.583 に答える