我已经构建了一个android应用程序,用于收集移动和可穿戴传感器数据。我希望这个应用程序是在后台24/7运行,而不是被操作系统杀死。我知道全天候运行它的所有优点和缺点,但这是我的主要业务需求。
编辑:我已经把它作为前台服务了,只要我一直和我的手机交互,它就能工作,但是如果我让它空闲4-5个小时,即使它被列为前台服务,操作系统也会取消它
发布于 2019-01-10 17:20:06
在android棉花糖之后运行后台服务是一个令人头疼的问题。
每一次后台操作都被Doze and StandBy Modes挂起。而且,即使您使用job dispatcher或WorkManger,运行操作的最小间隔也是15分钟,即使您将最小间隔设置为小于15分钟。
所以你需要启动一个带有粘性通知的前台服务来完成你的工作。您可以查看此article以开始使用前台服务。如果您的应用程序将在androi Pie上运行,请不要忘记将此预授权放入清单文件中
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />你可以在电话重启时使用广播接收器重新运行你的服务。
<action android:name="android.intent.action.BOOT_COMPLETED" />你也可以通过监听这个动作来停止它
<action android:name="android.intent.action.ACTION_SHUTDOWN" />发布于 2019-01-10 16:48:33
使用Service收集数据您可以在前台运行它,它不会被操作系统杀死
发布于 2019-01-10 21:01:30
将应用程序设置为启动程序,并将其设置为默认启动程序。您可以按照本指南here进行操作。这个想法是,当手机启动时,启动程序是由操作系统启动的,当系统内存不足时,它永远不会被关闭。
https://stackoverflow.com/questions/54124631
复制相似问题