如何设置android服务的优先级?

时间:2014-12-16 07:16:53

标签: android android-activity android-service

有没有办法设置android服务的优先级?我想在破坏App的主要活动后在后台运行该服务。所以我从我的服务中返回“START_REDELIVERY_INTENT”。但重新启动服务需要一些时间(大约1-3分钟)。我想立即重启服务。有没有办法设置android服务的优先级。

仅供参考,我使用startService创建服务并通过intent.putExtra()传递对象。

以下快照来自我的Android设备设置/ apps /正在运行的应用程序,这表明应用程序正在重新启动...我的应用程序是实时特定的,所以我想立即重新启动...

enter image description here

3 个答案:

答案 0 :(得分:3)

优先级取决于组件类型和用户正在使用的当前应用程序。最高优先级具有向用户显示的当前Activity以及所有foreground services。前台服务必须有一个不能被解雇的通知。要创建前台服务,您必须从startForeground(...)本身调用Service方法,并传递通知的ID和Notification对象本身。如果您想稍后更新通知,可以使用该ID。

我建议您制作service bound并将您的活动绑定到该服务。这样,您就可以使用onResumeonPause方法启动和停止服务。

答案 1 :(得分:2)

在这种情况下,提高服务优先级的唯一方法是将其设为foreground service

答案 2 :(得分:2)

您无法控制Service的此行为,因为它取决于操作系统和可用资源。但是,对于持续运行的后台服务,我建议您返回START_STICKY - 它会尽力在服务因某些原因被销毁后重新运行。