2016-12-13 8 views

答えて

8

技術的には、Android ThingsアプリにはUIがあります。通常のAndroidアプリ(setContentView()ViewViewGroupなど)でできることはすべてAndroid Thingsアプリでも実行でき、ディスプレイに接続されたボードを使用するとこのUIはディスプレイに表示されます。実際、ディスプレイがthis oneなどのタッチをサポートする場合、通常のAndroidアプリのようにUIとやりとりすることもできます。

標準のUIツールキットを使用するかどうかに関わらず、アプリケーションは他のアプリと同じように、Androidのスレッドポリシーに準拠する必要があります。メインスレッドでネットワーク操作を実行することはできません。他のアプリと同様に、オペレーティングシステムはアプリのメインスレッドの応答性を監視していますので、周辺機器とのやりとりが長時間実行またはブロック操作を実行できる場合は、バックグラウンドスレッドを使用してアプリケーションが応答していないとシステムが判断しないようにする必要があります。

3

Android ThingsはAndroidアクティビティの入力イベントシステムを使用して、ハードウェア周辺機器からの入力を受け取ります。つまり、ボタンがブレッドボードにプッシュされたとき、アクティビティはこれをキーイベントとして受け取ります。

バックグラウンドスレッドを使用しない場合、これらの入力イベントを解釈および/または受信できるように、アプリがコードを実行している可能性があります。

このため、オペレーティングシステムは引き続き標準のスレッドポリシーを実施し、なぜバックグラウンドスレッドを使用する必要があるのでしょうか。

ドキュメントhttps://developer.android.com/things/sdk/index.htmlから:

しかし、Androidの絞り込みを表示する必要はありません。グラフィックディスプレイがないデバイスでは、アクティビティはまだAndroid Thingsアプリの主要コンポーネントです。これは、フレームワークがすべての入力イベントをフォーカスを持っているフォアグラウンド・アクティビティに配信するためです。あなたのアプリは、サービスなどの他のアプリケーションコンポーネントを介してキーイベントやモーションイベントを受け取ることはできません。

関連する問題