由于Android Things一次只能运行一个应用程序,因此在终止/后台/恢复进程方面,我不确定规则与正常的Android OS有何不同。
我的Android Things使用案例并不简单。我正在用PWM通道控制执行器。问题是,如果我设置了“移动命令”,然后发生致命异常或其他此类中断,则我的应用程序崩溃了,但执行器臂仍在移动(因为PWM屏蔽板保留了其功能和值)!由于这些手臂控制着移动的船,因此非常危险。
是否以某种方式拦截进程的终止,以便我可以接收PWM“零输出”命令?还是有某种方法可以玩Android Things游戏,以便在我的主应用程序死后立即启动其他过程?
答案 0 :(得分:2)
由于Android Things一次只能运行一个应用程序,因此在终止/后台/恢复进程方面,我不确定规则与正常的Android OS有何不同。
这不是真的。 Android Things在多个前台和后台应用程序中的语义与Android移动设备相同。但是,由于没有默认的应用启动器,因此您必须define an application来捕获默认的HOME
意图并成为前台应用。通过该应用程序,您可以随意在后台启动其他应用程序。
是否以某种方式拦截进程的终止,以便我可以接收PWM“零输出”命令?还是有某种方法可以玩Android Things游戏,以便在我的主应用程序死后立即启动其他过程?
如果该应用崩溃,Android会自动重新启动HOME
活动(除非您已经在其上启动了其他活动,除非您具有UI,否则不一定建议这样做)。您可以使用它将硬件初始化为默认状态。
另一个选项是让您的电动机驱动器逻辑在后台应用程序的绑定服务中运行。这将允许主应用程序以超级用户身份运行(当绑定的服务终止时,它会收到通知)并重置PWM(或重新启动服务,以正确初始化PWM)。
答案 1 :(得分:0)
我要在前面的答案中添加一个好主意,以重置onStart内的硬件组件的状态,并添加适当的异常处理(即,在某些情况下意外断开连接的情况下)