Android Things,如何捕获进程杀死

问题描述 投票:1回答:2

由于Android Things一次只运行一个应用程序,因此我不确定规则与正常Android操作系统的区别在于杀死/后台处理/恢复进程。

我的Android Things用例并非无足轻重。我用PWM通道控制执行器。问题是如果我设置一个“移动命令”然后有一个致命的异常或其他这样的中断,我的应用程序崩溃但执行器臂保持移动(因为PWM屏蔽保持其功率和值)!由于这些武器正在控制移动的船只,这是非常危险的。

有没有办法,以某种方式拦截过程的杀戮,所以我可以得到我的PWM“零输出”命令?或者是否有一些游戏Android的东西立即启动一些其他进程,在我的主应用程序死亡后执行此操作?

android hardware android-things pwm android-hardware
2个回答
2
投票

由于Android Things一次只运行一个应用程序,因此我不确定规则与正常Android操作系统的区别在于杀死/后台处理/恢复进程。

这不是真的。 Android Things与Android移动设备在多个前台和后台应用程序之间具有相同的语义。但是,由于没有默认的应用程序启动器,您必须使用define an application来捕获默认的HOME意图并成为前台应用程序。在此应用程序中,您可以根据需要在后台自由启动其他应用程序。

有没有办法,以某种方式拦截过程的杀戮,所以我可以得到我的PWM“零输出”命令?或者是否有一些游戏Android的东西立即启动一些其他进程,在我的主应用程序死亡后执行此操作?

如果该应用程序崩溃,Android会自动重启HOME活动(除非您在其上启动了其他活动,除非您有UI,否则不一定建议这样做)。您可以使用它将硬件初始化为默认状态。

另一种选择是让您的电机驱动程序逻辑在后台应用程序中的绑定服务中运行。这将允许主应用程序作为主管运行(它在绑定服务死亡时得到通知)并重置PWM(或重新启动服务,正确初始化PWM)。


0
投票

我将添加到上一个答案,这是一个好主意,可以重置onStart中的硬件组件的状态,并添加适当的异常处理(即在某些情况下意外断开连接)

© www.soinside.com 2019 - 2024. All rights reserved.