可能であればスレッドをブロックすることなく、アクセサリのInputStream
からバイトを読み取ろうとしています。AndroidでのスレッドブロッキングADK
通常、if available()
でread(buffer)
呼び出しをラップしますが、available()は例外をスローします(read()がInputStreamで正常に動作しても)。
スレッドブロッキングを最小限に抑える方法はありますか?
EDIT:バックグラウンドで読み取りを行うために
IセットアップAsyncTask
(私は拡張されたタスクのための本当のスレッドを使用する必要があります知っているが)、それは罰金っぽい動作します。
実際の質問は、「読み取り」コールによって常にバックグラウンドスレッドがブロックされることによるパフォーマンスの低下ですか?今は効果はありませんが、アプリケーションはすぐにかなり集中的になり、私はできるだけ軽いコミュニケーションをしたいと思います。
BufferedInputStream
は負荷をまったく軽減しますか?それはそれ自身のavailable()メソッドです。
はなぜあなたのためだけに読み取り操作を処理するために、 'Thread'をスピンアップません:
これは、元の問題に対処すべきか?次に、処理するデータが実際にあるときはいつでも、他のオブジェクトにコールバックすることができます。 – aroth