1

私たちのアプリケーションは、iPod のバックグラウンドから再開するのに時間がかかるため、毎回スプラッシュ スクリーンが表示されます。アプリがフォアグラウンドに入ると、キャッシュからデータを読み込むため、大量のデータがある場合は時間がかかります。どうすればこの状況に対処できますか? これらのメソッドをディスパッチ キューに入れただけですが、目立った効果はありません。

4

1 に答える 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 に答える