0

この問題に対する効率的な解決策があるかどうか疑問に思っています。

Androidデバイスに接続するためのUSBアクセサリHWを開発しています。私の Android アプリのアクティビティは、USB 通信を処理するドングル クラスのインスタンスをレシーバー スレッドで作成します。アクティビティは、メッセージの受信時にドングル クラスのコールバックを提供するため、自身のインスタンスもドングルに渡します。

ドングル クラスはメッセージをリッスンし、コールバックを介して何が起こっているかをメイン アクティビティに通知し、何が起こっているかを反映するようにビューを調整できるようにします。エラー:ビュー階層を作成した元のスレッドのみがそのビューにアクセスできます

ハードウェアまたはユーザーが何かを変更するたびに、まったく新しいアクティビティを作成できますが、その後にアクティビティの森を残します。(私の知る限り、Google は活動を強制的に殺すことに眉をひそめています) これを回避する方法はありません。元のスレッドをそこに置いて USB の変更をポーリングすることもできますが、それではシステム全体の速度が低下します。

「activity.setContentView(R.layout.main)」でレイアウトを変更しようとしましたが、レイアウト ファイルを忘れて、SW で UI を生成する可能性があります。私はまだ間違ったスレッドにいるでしょう。うーん

アイデアをお持ちの方は、ぜひご連絡いただければ幸いです。

4

1 に答える 1

0

変更するアクティビティにパブリックハンドラーを作成し、Runablesを投稿します

于 2012-05-22T18:44:51.323 に答える