それ自体と 3 つのアクティビティとの間で双方向通信を行う socket.io (チャット サービス) を使用してサービスを作成しました。
サービスは「ダッシュボード」アクティビティで開始されてバインドされ、アプリ全体が閉じられるため、実行されている必要があります。接続されているユーザーを表示する「チャット」アクティビティに移動すると、「ダッシュボード」のバインドが解除され、「チャット」がサービスにバインドされます。
onStartCommand()
START_STICKY を返します。
私が拘束しているとき、私は呼んでいますbindService(i, this, 0)
これは本当にfroyoとgingerbreadで機能していますが、ICSでテストしたところ、「ダッシュボード」アクティビティがバインド解除され、サービスからのonDestroy()メソッドが呼び出されるとサービスが停止します。bindService のフラグを Context.BIND_AUTO_CREATE に設定し、onStartCommand から返された START_STICKY 値を変更して、すべてを試しましたが、アクティビティ間でサービスを維持できません。
何か案は?
編集:私は問題を発見しました.私の電話では、表示されていないときにアクティビティを管理しないという開発者オプションがあり、それが私のサービスも殺していました. しかし、RAMが少ないデバイスや攻撃的なタスクキラーでクラッシュするかどうか疑問に思っています。