2011-10-25 12 views
1

しばらく放置すると、バックグラウンドから復帰してからiOS5でcocos2dがクラッシュしました。私は、標準/ベストプラクティスが、バックグラウンドに送信されるアプリケーションを処理する上で何かを知りたいです。私はそれを一定の時間後に終了しますか?私はいくつかのゲームが長い時間の後に再開するときに読み込み画面をプルアップを参照してくださいしかしすぐにゲームにまっすぐにそれを再開するとき。彼らは再開時に何を読み込んでいますか?中止後の再開時にアプリやゲームがクラッシュするのを防ぐ方法

正しい方向のポインターがあれば幸いです。

おかげ AC

答えて

1

あなたはadding UIApplicationExitsOnSuspend to your Info.plistでバックグラウンド実行をオプトアウトすることができます。

それ以外は、実行を再開したときにアプリがクラッシュしないようにすることがあなたの仕事です。アプリケーションは基本的に中断状態になることを理解しておく必要があります。つまり、不要なすべてのリソースをアンロードする必要があります。そうしないと、システムによってアプリケーションのプロセスが終了する可能性があります。

あなたのアプリデリゲートでは、applicationDidBecomeActiveメッセージに返信し、それに応じて応答して、アプリが問題なく実行を再開できるようにします。これには、アンロードされたアセットのロード、システム設定(ロケール、ゲームセンターユーザーなど)が変更されているかどうかを確認することが含まれます。

また、register a didBecomeActive UINotificationでもかまいません。アプリを再開するときに、アプリ内のどのクラスにも通知が届くようにすることもできます。

+0

ありがとうございます。今、私は分かる。 applicationWillResignActiveで次のヘルプが呼び出されますか? \t [[CCTextureCache sharedTextureCache] removeUnusedTextures]; \t [[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames]; – AbhinavVinay

+0

はい、すべてのキャッシュをパージするディレクターの「パージ」メッセージ – LearnCocos2D

+0

しかし、すべてをパージしたいですか?その後、私は右に再開するときに私はすべてを再度ロードする必要がありますか?これは安全ですか? – AbhinavVinay

関連する問題