These are two different things.
The Queue Job Priority Job library is designed to solve a problem when you have a lot of things that you want to run in the background and want to be manageable so that they don't overload your application. It is expected that you want these bits of work to run as soon as possible, and you want to show the results in action in your application (but not necessarily).
JobScheduler is used when you have work to be planned and run in the future, possibly sometime after your application process is killed. It is sensitive to device circumstances such as deep sleep and network connectivity, so work can be scheduled as soon as possible without draining the battery.
source share