目前我有一个 Android 前台服务作为后端,另一个应用程序作为前端。
后端将与硬件进行通信,前端应用程序用于用户控制硬件,并且后端和前端是不同的(他们的应用程序ID不一样)。
现在我遇到的问题是后端有时会被回收。我不认为有什么东西会导致它崩溃,因为它的日志文件中没有错误。
我已经将后端作为前台服务,它有一个通知,但这样只是减少了死亡的机会。重新传递意图和粘性也不起作用。
我还尝试创建另一个服务(与后端相同的应用程序ID)来观察后端的状态,但它不起作用。
现在我正在考虑两种方法来处理这个问题。
1 是我最糟糕的选择,因为我不想让另一个应用程序来处理这个问题。但我相信这应该有效。
我不知道在 2 处是否可能。但我认为如果小部件是可见的,那么操作系统不会杀死它。
2处的方式会有一个定时器来检查后端的状态,如果是死亡,就发送一个意图来恢复它。
2的方式可以吗?
谢谢!
--- 更新---
我们的设备将在信息亭模式下运行。所以基本上它会一直打开屏幕。
设备将是原始 Android 操作系统(版本 9 或更高版本)。而且它不是像 Pixel、三星等普通手机。它是由我们自己的制造商提供的。
好吧,我意识到这是不可能的。
我也尝试使用WindoManager并添加自定义视图,但oom_score_adj的值仍然是200。
似乎没有办法阻止操作系统杀死后台进程。