1

前の質問への回答で述べたように、Android デバイスで CPU がスリープ状態になった後でも、CDMA および GSM 無線はオンのままです。私の質問は...

  1. 電話がかかってきたとき、CPU / 電話を起こすのは何ですか?
  2. 電話がスリープモードになった後でも、サーバーへのアクティブな TCP 接続を介してデータを受信したときにアプリケーションを起動する同様のメカニズムはありますか?
4

2 に答える 2

1

CPU がスリープ状態のときはデータを受信できません。

新しいデータがあるかどうかを確認するために、CPU を時々起動する必要があります。新しいデータをチェックするコードでは、新しいデータがある場合は、目を覚まして処理を行うことができます。

BroadcastReceiver と android のアラームについてぜひ学びたいと思います。基本的に、Android がスリープ状態であっても、5 分ごとなどにアラームを送信するように Android に指示できます。BroadcastReceiver は、Android からアラームを受け取ると CPU を起動し、新しいデータがあるかどうか、または何をしようとしているのかを確認するのに十分な時間待機します。新しいデータがある場合は、CPU にスリープ状態を維持するように指示し、新しいデータを処理することができます。

ここに合理的なチュートリアルがあります。もちろん、Android 開発者向けドキュメントも役に立ちます。

于 2012-04-17T02:02:14.550 に答える
1

デバイスにプッシュ通知を送信することを検討することをお勧めします (TCP が特に必要ない場合)。

Google の (無料の) Android Cloud to Device Messaging (C2DM) サービス (http://code.google.com/android/c2dm/) を確認してください。

セットアップには少し手間がかかり、2.2+ でのみサポートされていますが、クライアント/サーバー アーキテクチャが非常に簡素化されています。

于 2012-04-17T01:59:26.827 に答える