2011-09-03 24 views
5

ネットワークIOを実行する30秒プロセスを持つiphoneアプリがあります。基本的には、アプリケーションはバックグラウンドにありますが、このプロセスを1時間ごとに実行したい(実際は1日に1回ですが、失敗した場合は1時間以内に再実行します)。1時間ごとにバックグラウンドで〜30秒のプロセスを実行する方法(iPhoneアプリ)

ios 4のバックグラウンド機能は、これが可能ですか?もしそうなら、どうですか?私が打ちのめす限界は何ですか?

ありがとうございます!

+1

私は多くの研究を行い、サイレントプッシュ通知 "は私のためのトリックでした。 http:// stackoverflowを参照してください。com/questions/35987366/ios-enterprise-app-how-can-i-make-sure-my-app-in-the-background –

答えて

6

バックグラウンドでコードを実行する方法について、Appleのドキュメントを見てみましょう。

http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/BackgroundExecution/BackgroundExecution.html

バックグラウンドにタスクに近づいてのいくつかの異なる方法があります。完全にバックグラウンドされたプロセスを持つことができる唯一のアプリケーションは、「オーディオ」、「ボイス」、「ロケーション」アプリです。これはInfo.plistで宣言する必要があります。

あなたのアプリがこのタイプでない場合は、簡単にするのが難しいかもしれません。有限の期間(そのリンクでも)バックグラウンドでアプリを存続させる方法がありますが、最終的にはアプリがシャットダウンされます。

ローカル通知では、アプリケーションを開くようにユーザーに指示するだけです。30秒ごとにアラートポップアップを実際に表示しますか?

+0

私が望むことをする方法がないようです。知らせてくれてありがとうございます。 – Chris

+0

この回答のリンクはありません。バックグラウンド処理に関する情報は、現在のiOSドキュメントhttp://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html – Opsimath

0

私はローカル通知を使用すると、次の.... チェック....

  1. http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/IPhoneOSClientImp/IPhoneOSClientImp.html#//apple_ref/doc/uid/TP40008194-CH103-SW1
  1. アプリケーションは、ローカル通知を作成し、スケジュールすることができます役立つと信じていますオペレーティングシステムはスケジュール日時に配信します。アプリケーションがフォアグラウンドでアクティブでないときにアプリケーションを配信する場合は、アラートを表示したり、アプリケーションアイコンをバッジしたり、UILocalNotificationオブジェクトで指定されているサウンドを再生したりします。アプリケーションがフォアグラウンドで実行されている場合、アラート、バッジ、またはサウンドはありません。代わりに、デリゲートが実装している場合は、application:didReceiveLocalNotification:メソッドが呼び出されます。

  2. デリゲートは通知のプロパティを検査し、通知にuserInfoディクショナリにカスタムデータが含まれている場合、そのデータにアクセスしてそれに応じて処理することができます。一方、ローカル通知がアプリケーションアイコンにのみバッジを付けるだけで、ユーザーがそのアプリケーションを起動すると、application:didFinishLaunchingWithOptions:メソッドが呼び出されますが、UILocalNotificationオブジェクトはオプション辞書に含まれません。

+0

ローカル通知を使用すると、springboardからの警告メッセージがポップアップ表示され、appアイコンのバッジを更新できます番号を付けたり、音を鳴らしたりします。しかし、決してネットワークI/Oを行う機会は与えられません。 –

+0

こんにちは、ありがとうございます。私は以下に基づいて上記に書いた。 1. application:didReceiveLocalNotification:議論を参照してください。 UILocalNotificationオブジェクトには何でも構いません。 2. UILocalNotificationの概要部分では、「デリゲートは通知のプロパティを調べることができ、通知にuserInfo辞書のカスタムデータが含まれていれば、そのデータにアクセスしてそれに応じて処理することができます」....だから私はuserinfo dictは呼び出すURLを持つことができ、バックグラウンドプロセスに許容された特定の時間内にプロセスが完了できる場合は、そのプロセスを呼び出してデータを処理することができます。 – Mohammad

1

私は同じような研究をしていましたが、それ以前に見つけられなかった場合はthis SO answerを見てください。 DataManやData Usageのようなアプリケーションでは、バックグラウンドで何らかの定期的なコード実行が必要なので、私は100%はあなたが求めているものが不可能だと確信していません。

+0

で見ることができます。興味をそそられるようですが、私はかわいいですちょっとしたハックな解決策が私をアプリストアの前に出させてくれることを確かめてください! – Chris

関連する問題