有没有办法设置android服务的优先级?我想在破坏App的主要活动后在后台运行该服务。所以我从我的服务中返回“START_REDELIVERY_INTENT”。但重新启动服务需要一些时间(大约1-3分钟)。我想立即重启服务。有没有办法设置android服务的优先级。
仅供参考,我使用startService创建服务并通过intent.putExtra()传递对象。
以下快照来自我的Android设备设置/ apps /正在运行的应用程序,这表明应用程序正在重新启动...我的应用程序是实时特定的,所以我想立即重新启动...
答案 0 :(得分:3)
优先级取决于组件类型和用户正在使用的当前应用程序。最高优先级具有向用户显示的当前Activity
以及所有foreground services。前台服务必须有一个不能被解雇的通知。要创建前台服务,您必须从startForeground(...)
本身调用Service
方法,并传递通知的ID和Notification
对象本身。如果您想稍后更新通知,可以使用该ID。
我建议您制作service bound并将您的活动绑定到该服务。这样,您就可以使用onResume
和onPause
方法启动和停止服务。
答案 1 :(得分:2)
在这种情况下,提高服务优先级的唯一方法是将其设为foreground service。
答案 2 :(得分:2)
您无法控制Service
的此行为,因为它取决于操作系统和可用资源。但是,对于持续运行的后台服务,我建议您返回START_STICKY
- 它会尽力在服务因某些原因被销毁后重新运行。