0

私のアプリは、コーディングしたサービスを介してサーバーとのソケット接続を維持しますが、電話がスリープ状態になると (画面がオフになってから数分後)、スリープ状態の電話から通常の応答を取得できません。通常、サービスがネットワーク イベントを受信すると、サウンドが再生されます。

私の質問は、アプリを機能させるために wake_lock が必要かどうかです。もしそうなら、この wake_lock はどのコンポーネントに役立ちますか? 音とソケットの接続が気になります。部分的な wake_lock だけでこれを行うことはできますか?

ソケット接続に関しては、wifi で行う場合、追加の wifi ロックが必要ですか? ソケット接続はたまに小さなトランザクションで構成されているだけなので、(ユーザーが wifi を有効にした場合でも) wifi の下にないソケット接続を使用できる方法はありますか? または、ソケット接続は 3g/4g でのみ便利に行われますか、それとも wifi から 3g/4g に正常に縮退できますか?

ありがとう!

4

1 に答える 1

1

アプリを機能させるにはwake_lockが必要ですか?

一般的に、はい。ネットワーク接続がモバイルデータ経由であり、サーバーへのソケットが開いていて、そのサーバーがパケットを送信する場合、電話は短時間ウェイクアップします。ただし、深刻な作業を行うには、を取得する必要があります。また、上記のイタリック体のifステートメントのいずれかが当てはまらない場合は、この接続を維持しようとしている限り、が必要です。WakeLockWakeLock

したがって、プッシュ通知をC2DMに切り替えることを検討してください。

部分的なwake_lockだけでこれを行うことができますか?

パーシャルWakeLockで十分です。

Wi-Fiで行う場合、追加のWi-Fiロックが必要ですか?

はい。

(ユーザーがwifiを有効にしている場合でも)wifiの下でソケット接続を確立できる方法はありますか?wifiロックして電力を浪費する必要はありませんか?

あまり。ソケット接続を要求します。その時点でアクティブなネットワークを使用します。

または、ソケット接続は3g / 4g未満でのみ便利に実行できますか、それともWi-Fiから3g / 4gに正常に縮退できますか?

WiFiの電源が切れたり、使用できなくなったりした場合、ネットワーク接続はモバイルデータに正常にフォールバックします。ただし、ソケット接続はそうではありません。WiFiでソケット接続があり、WiFiの電源がオフになると、ソケットが閉じられるため、新しいネットワークでソケットを再度開く必要があります。

于 2012-02-12T21:54:52.910 に答える