リモートサービスに接続するモジュールを作成します。Android:リモートメッセンジャーサービスの呼び出し時にメソッドを同期
このモジュールは、開発者が特定の(ブルートゥース)ハードウェアに接続するためにアプリケーションで使用できます。その後、市場で別々に更新できる単一のリモートサービスに接続する必要があります。
リモートサービスでは、同時に使用しているすべてのアプリケーション(Bluetooth経由の1つの接続のみ)に対して1つのスレッドしか使用できないため、AIDLよりもメッセンジャーアプローチを選択しました。
私のパブリックAPIで同期メソッドを提供したいが、サービスがハンドラで返されるようになりました。私が理解している限り、ハンドラは常に現在のタスクが終了するまで待ちます。では、差分スレッドで答えを得る方法はありますか?
私はそれがしたいとの同期方法のコード:事前に
responseDataSync = new Sync<ResponseData>();
// Send message
Message msg = Message.obtain(null, Constants.DATA, 1, 0);
send(msg);
try {
ResponseData responseData = responseDataSync.get();
// with responseDataSync using a countdown latch to synchronize...
// but it never fires thanks to the handler.
//etc...
感謝。私の質問がやや理解できたと思います);
/EDIT: サーバーからデータを返すメソッドが必要です。以下のような
public ResponseData returnResponse(Data dataToSend)
が、その後、私は何を返すからブロックハンドラをスレッドで立ち往生していますので、私は、サービスの帰りを待つことができない...
のように働くかもしれないメッセージを待ちますあなたのapk経由で、そしてそのサービスを利用したい他のアプリに含まれなければならないパブリックAPIを使用していますか? – zapl
あなたは私を持っています。 ;)ライブラリには追加機能があり、できるだけシンプルにサービスにアクセスする必要があるため、同期メソッドの必要性があります – domenukk