2017-03-15 17 views
1

AndroidでCodenameOneを使用して、Bluetooth LEを使用して歩数計特性に登録しました。私は通知を受けているようだが、私はそれを解析してうまく提示する前に、データを確認する最初のラウンドとして、現在アプリケーションのテキスト領域にデータを書き込んでいるだけだ。問題は、GUIの再描画と通知イベントの間にデッドロックの問題があるかのように、アプリケーションがすぐにロックされることです。 GUIの更新はサブスクリプション "リスナー"内で行われます。これは私が理解するところでは、CodenameOne環境内のGUIスレッド上にあります。 "リスナー"は基本的にtext.setText()、text.repaint()で行います。何もない。Bluetooth通知とAndroid GUIアップデート

私はGUIを更新する方法はわかりませんが、同時に通知を受け取ります。一般的なロックの問題を修正できる場合は、ユーザーがクリックしてサブスクリプションを停止できるボタンがあります。もちろん、このボタンはこの現在の状態では使用できません。

私はCodenameOne background task for BluetoothLe connectionのような他の質問を見ましたが、実際は同じではありません。

これを「ロック解除」し、通知を受信しながらGUIの更新を許可する方法に関する提案はありますか?

+0

あなたのしていることを示すためにスニペットを投稿できますか?EDTに違反していることを調べるのに役立ちます。 – Diamond

答えて

0

実際にコードhereを見ると、コールバックはEDTに戻らずにactionPerformedメソッドを呼び出すようです。これは、コードネーム1の共通の意味にはっきりと違反しているので、これは図書館で修正する必要があると私は思う。私はcallSerially()でコードをラップすることをお勧めします。

関連する問題