1)スリープ/スタンバイの概念はそれほど複雑ではありません。ユーザーがアプリケーションを終了すると(ホームボタンを押すと)、アプリケーションは停止してフリーズ状態(4.x)になるか、完全に終了します(3.x)。それにもかかわらず、後者が- (void)applicationWillTerminate:(UIApplication *)application
メソッドで発生する前、前者が- (void)applicationDidEnterBackground:(UIApplication *)application
メソッドで発生する前に、いくつかのクリーンアップ操作を行う機会が与えられます(両方ともデレゲートクラスで呼び出されます)。 「スリープ」の概念は、iPhone OS 3とiOS 4の両方で、アプリがフォーカスを失ったとき(またSMSが届いたときや警告など)、次の方法を受け取ることを意味します:
- (void)applicationWillResignActive:(UIApplication *)application
実際、ほとんどのアプリケーション(voip、オーディオストリーミングなどのバックグラウンドで動作するように設計されたアプリケーションを除く)は、単に終了するだけで終了します。しかし、必要な場合は、アプリのフリーズを中断して、タスクを完了するためにもっと時間を要請することもできます。
2)振動時間は公式APIで変更することはできません。
ループ内でAudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
を複数回呼び出すか、NSTimer
を使用して呼び出すことができますが、これはお勧めできません。バッテリーが消耗し、デバイスがテーブルから落ちる可能性があります。ちなみに、アップルは、あなたが適切に振動を使用していないと考えれば、あなたのアプリを拒否することができます。
答えをいただきありがとうございます。ポイント1の回答に答えて、どのようにしてタスクを完了するまでに時間を要することができますか?また、アプリがバックグラウンドに入るときに関係なく、いつでも通知を受け取ることができるので、私は時間を尋ねると時間が掛かります。私には分かりません。 –
apple docsはアプリが終了した後ユーザーは、保留中のタスクを完了するまでに10分かかる。その後、そのアプリケーションのすべてのリソースが中断されます。ここをクリックして詳細を確認してください - http://stackoverflow.com/questions/8861390/ios-background-downloads-when-the-app-is-not-active –
Ok.But私は単に私のアプリを起動させることができます知りたいのですがプッシュ通知のすべての条件(つまり、すぐに掃引画面と通知のいくつかの時間後に掃引画面)。私のアプリはちょうどすべてのことです "(このタスクはアラームとしてローカルに設定され、私はプッシュ通知aaアラームを使用しています)..... plsのヘルプ –