我正在开发一个Android应用程序,它将嵌入到我们的客户拥有的非移动设备上,并被我们客户的客户使用。我的老板正在为机器设想第二个应用程序,该应用程序在后台运行,并定期通过Service
将有关设备的数据发送到后端。我使用过这种方法,虽然我知道它是不完美的,因为Android很容易在任意和不指定的时间杀死后台服务,即当它决定该服务已经过时或系统需要更多内存时。
也就是说,我们正在运行开源版本的Android (v5.1.1)。我在想,我的操作系统团队是否有什么可供选择的,对于那些为谷歌安卓( Google Android )构建应用程序的人来说,有没有什么办法可以消除那些典型的家事管理机制或已经关闭的自动重启应用程序?
发布于 2019-07-19 19:42:48
在清单中的android:persistent="true"
标记上设置<application>
。
医生说:
应用程序是否应该在任何时候都保持运行--如果应该运行"true“,如果不应该,则"false”。默认值为"false“。应用程序通常不应设置此标志;持久性模式仅适用于某些系统应用程序。
为此,需要在系统分区上安装APK。它可能还需要在priv-app
目录中,或者使用与系统相同的密钥进行签名(有些事情是这样做的;我不记得有这种特殊情况)。
请注意,您的Application.onCreate()
将自动启动;您的Service
不会自动启动。并不是你需要它;当你是persistent
的时候,安卓系统不会(通常)杀死你的进程,所以你可以只运行正常的线程来做你需要做的事情。
最后,确保您没有泄漏内存。持久性应用程序会被很晚才被杀死(如果有的话..?)通过LMK,因此它可能会对您的设备的性能或稳定性产生不利影响。
发布于 2019-07-19 19:16:44
在我看来,你有三个选择:
https://stackoverflow.com/questions/57113120
复制相似问题