2

私は新しい ObjC 開発者であり、Web と Apple の開発者ドキュメントを検索した後、さまざまな iOS デバイス モードと、これらのモードで何が行われるかについての簡潔な説明を見つけることができません。小さな議論はたくさんありますが、全体像についての包括的なものは何もありません。

たとえば、iPhone/iPad 用のアラーム アプリケーションの中には、午前中にアラーム (おそらくシステム アラートだけではない) を実行できると主張しているものがあります。使用しないとデバイスがスリープモードになると仮定して、ユーザーがアプリを一晩中実行し続けたとしても、それがどのように起こるかを理解するのに苦労しています。

そのため、デバイスがスリープ モードまたはスタンバイ モードになるとどうなるかわかりません。画面が暗くなっただけですか?フォアグラウンドのアプリケーションは引き続きコードを実行しますか、保存された状態でバックグラウンド モードのような暫定的な状態になりますか、それとも完全に (一時的であっても) シャットダウンしますか?

さまざまなデバイスの状態、各状態のアプリケーションで iOS 3 および 4 で何が起こっているか、およびそれを管理する方法を説明している Web サイト、書籍、または Apple のドキュメントの一部を参照してください。 「常にオン」のシミュレートされたベッドサイドの目覚まし時計に似たアプリを構築したいと考えています。

前もって感謝します。

4

2 に答える 2

4

これらの「アラーム」はローカル通知であり、非常に便利です。これらは、アプリケーションが閉じているときでも、デバイスがスリープしているときでも発生します。

眠るという概念はそれほどトリッキーではありません。ユーザーがアプリケーションを「終了」すると(ホームボタンを押す)、アプリケーションは停止してフリーズ状態になるか(4.x)、完全に終了します(3.x)。- (void)applicationWillTerminate:(UIApplication *)applicationそれでも、後者がメソッドで発生する前、および前者がメソッドで発生する前に、いくつかのクリーンアップ操作を実行する機会が与えられます- (void)applicationDidEnterBackground:(UIApplication *)application(両方ともデリゲートクラスで呼び出されます)。

「スリープ」の概念は、iPhone OS3とiOS4の両方で、アプリがフォーカスを失ったとき(および、SMSが着信したとき、アラートなど)に次の方法を受け取ることを意味します。

- (void)applicationWillResignActive:(UIApplication *)application

実際、ほとんどのアプリケーション(VoIP、オーディオストリーミングなど、バックグラウンドで動作するように設計されたアプリケーションを除く)は、単に終了すると終了します。ただし、必要に応じて、アプリのフリーズを一時停止し、タスクを完了するためにさらに時間を要求することもできます。

これは3.xの時代にははるかに理解しやすかったのですが、4.xの「マルチタスク」では少し難しくなりました。しかし、それほど気が遠くなることはありません。これを読むと少し役に立ちます

于 2011-01-12T03:05:11.403 に答える
0

これは役立つかもしれません:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html

UIApplicationStateについては、applicationStateを参照してください。

于 2011-01-12T03:06:13.820 に答える