今日はこのサイトのwebapi対応したandroidアプリに追加機能として、websocketによるpush配信の受信機能をつける開発をしていました。前からサーバ側は対応しているのですが、androidアプリの対応は何かとサボっていてそっちのけでした。
java_websocketというやつがMITライセンスだったので使ってみました。インスタンスを生成して、後はデータを受信するとUIスレッド(よくわからない?)にイベントが発生するようです。そのため、まあまあ書きやすかったです。 とはいえよくわかっていないのが、Android launchModeの扱い。最初に表示するActivityのonCreateにwebsocketクライアントを生成する処理を書いてみたのですが、別のアプリを起動して自分のアプリをメニューから起動すると、別プロセスとして自分のアプリが重複起動しているみたい。そのため、websocketのセッションが起動した分できてしまっている状況に。(プログラム中にインスタンスがnullの場合はconnect()ってしているので変なのに気づいた)
Android launchModeをうまく設定してアプリを対応させないといけないみたいです。4つのモードがあるようでちょっと調べないとダメそうです。
とはいいつつ、そろそろiOSアプリの方に入っていかないといけない時期ですので、androidは少し休止モードにする予定です。 さて、もっているiPod Touch 4thはiOS7がインストールできないみたいなんだがどうするかね。。