2011-03-09 10 views
1

私はバックグラウンドサービスの唯一のタイプが音声、VoIP、位置情報サービスであると考えているので、私はプッシュを使用する必要があります通知。つまり、バッジはプッシュ通知にのみ使用されます。iPhone:バックグラウンドでサービスを実行する

更新: 5分ごとにサーバー上の更新を確認したいと思います。そのため、デバイスは、サーバーがデバイスにプッシュするのではなく、サーバーをチェックしています。私は電子メールが例だと思います。サーバーをポーリングします。サイモン

+0

達成しようとしていることは何ですか?また、プッシュ通知は、「サーバーと通信するデバイス」ではなく、「デバイスと通信するサーバー」と考えることもできます。プッシュ通知には、メッセージ、サウンド、およびカスタムユーザーデータを含めることもできます。 – wpearse

+0

デバイスはバックグラウンドでサーバーと通信できますか?私はちょうどプッシュ通知の設定の混乱なしにデータを交換する方法を考えています – Burf2000

+0

もう一度、私はもっと詳細が必要と思います...あなたはサーバーにデータを送信しているのか、サーバーからデータを受信して​​いますか?交換を引き起こすのは何ですか? – wpearse

答えて

2

おかげであなたは多くのオプションがあります。これは、バッテリーやデバイスのリソースのための最も友好的である

  • プッシュ通知
    を。ただし、通知システムのサーバー側実装が必要です。 ---あなたが現在探しているものではない可能性がありますが、即時の通知やネットワーク損失の処理に関しては「最高」のソリューションです。バックグラウンドでアプリケーションを実行


  • アプリできバックグラウンドで実行し、アプリケーションが長いために実行すること等...しかし、それはguranteedされていない、新しいデータ用のサーバーをチェックしておきますiOSのプロセスマネージャーがあなたのAppをスリープ状態にしたり予期せず終了させたりする可能性があるためです。 ---おそらくあなたが探しているものに近づき、基本的なテストのために働くかもしれません。非常に信頼できるものではありません。

  • は、マルチタスク
    サポートこれは明らかにそれを行うには、「最良の」方法です。マルチタスクのサポートを実装し、トラフィックが検出されるたびにiOSがアプリケーションを起動させるようにします。これは "voip"バックグラウンドモードを使用して行うことができます。

+0

私はマルチタスクに関するいくつかの研究をしなければならないでしょう。ほとんどのアプリはプッシュ通知を使用しますか?たとえばゲーム – Burf2000

+0

本当にあなたがしたいことにかかっています。たとえば、インスタントメッセンジャーアプリを提供していて、中央サーバーに接続性を管理させる場合、プッシュ通知を使用するほうが、新しいデータを「ポーリングする」デバイス上で実行するためのコードを必要としないためです。マルチタスクは基本的に、新しいデータが利用可能になったときや何か他のことが起きたときに、iOSにあなたのアプリケーションを「呼び出す」ようにします。ゲームの場合は通常、プッシュ通知で十分です。 – BastiBen

+4

ポイント2と3は正しくありません:(2)あなたはバックグラウンドでアプリを実行することはできませんが、ユーザーがアプリを殺してしまう前に、バックグラウンド処理時間を最大10分間求めることができますそれを閉じます。 (3)マルチタスクは、オーディオ、GPS、VOIPの3つのアプリケーションタイプのいずれかでのみ実装できます。 VOIPはPITAです。永続的なソケットが必要です(私は現時点で内部プロジェクトにそのメソッドを使用しています)。あなたのアプリが3つのアプリタイプのうちの1つ(または複数)としてマークされていて、あなたのアプリ*がそのタイプのバックグラウンドマルチタスクを使用していない場合、AppleはそれをApp Storeから拒否します。 – wpearse

3

プッシュ通知はあなたの最善の賭けのように聞こえる。 5分ごとにクライアントが更新をチェックするのではなく、注意すべき更新があるときにサーバーがクライアントに通知します。

これがユーザーに迷惑をかけるかどうかは、更新をどのくらい頻繁に更新するかによって決まります。 iOSの通知はかなり邪魔になるので、あまり使用しないでください。

関連する問題