私たちのアプリケーションは、iPod のバックグラウンドから再開するのに時間がかかるため、毎回スプラッシュ スクリーンが表示されます。アプリがフォアグラウンドに入ると、キャッシュからデータを読み込むため、大量のデータがある場合は時間がかかります。どうすればこの状況に対処できますか? これらのメソッドをディスパッチ キューに入れただけですが、目立った効果はありません。
1 に答える
1
ディスパッチ キューを使用して、時間のかかるメソッド (キャッシュからデータをロードするメソッド) をバックグラウンドに送信します。完了したら、今すぐ UI の更新を行う必要があると言うと、メイン キューを取得してそこで UI を更新します。
dispatch_queue_t queue = dispatch_queue_create("name for the queue", NULL);
dispatch_async(queue, ^{
//your extensive code goes here, should not involve any UI updates
//If there are any UI updates involved, uncomment the following code:
/*dispatch_async(dispatch_get_main_queue(), ^{
//UI update here, as it should always be done on main thread
});*/
});
起動時にメイン スレッドで負荷の高い計算を行っているため、スプラッシュ スクリーンが表示されています。今後、キャッシュからの読み込みに 10 秒以上かかると、ウォッチドッグによってアプリケーションが強制終了されるため、注意してバックグラウンドに移動する必要があります。
乾杯、楽しんでください
于 2013-02-13T06:08:14.903 に答える