我正在使用 Android Things 编写应用程序,并且大多数示例不使用任何 UI,即使它们使用了活动。我还需要为我的 Android Things 应用程序使用后台线程吗?
2 回答
从技术上讲,您的 Android Things 应用确实有 UI。您可以使用普通 Android 应用程序执行的所有操作(例如setContentView()
,使用View
s 和ViewGroup
s 等)您也可以在您的 Android Things 应用程序中执行,如果您使用连接到显示器的板,您可以在显示器。事实上,如果显示器支持这样的触控,您甚至可以像普通的 Android 应用程序一样与 UI 进行交互。
无论您是否使用任何标准 UI 工具包,您的应用程序都与其他应用程序一样,并且仍然必须遵守 Android 的线程策略,例如您不能在主线程上执行网络操作。与任何其他应用程序一样,操作系统仍会监视应用程序的主线程的响应性,因此如果与外围设备的交互可以执行长时间运行或阻塞操作,则应使用后台线程来防止系统认为您的应用程序没有响应。
Android Things 使用 Android 活动的输入事件系统来接收来自硬件外设的输入。即,当在面包板上按下按钮时,活动将其作为关键事件接收。
如果您不使用后台线程,您的应用程序可能会忙于运行您的代码而无法解释和/或接收这些输入事件。
因此,这就是操作系统仍将强制执行标准线程策略以及您应该使用后台线程的原因。
从文档https://developer.android.com/things/sdk/index.html:
但是,Android Things 不需要显示器。在没有图形显示的设备上,活动仍然是您的 Android Things 应用程序的主要组件。这是因为框架将所有输入事件传递给具有焦点的前台活动。您的应用程序无法通过任何其他应用程序组件(例如服务)接收按键事件或运动事件。