问题
According to the documentation, as of Android O services will be stopped several minutes after the app is no longer in the foreground.
The documentation suggests most services can be replaced with JobScheduler jobs. My question is - do jobs have any kind of special behavior as well, or do they behave the same as services pre-Android O? Can they live "forever" (as long as the system doesn't need the memory, of course), or do the system also kills them off at the end of a certain window?
回答1:
Can they live "forever" (as long as the system doesn't need the memory, of course), or do the system also kills them off at the end of a certain window?
No. In my testing, you have ~10 minutes, as opposed to the ~1 minute for a regular service.
If you need a service that runs forever, you will need to make it be a foreground service (startForegroundService()
on Android O+, or startService()
plus startForeground()
on Android 7.1 and earlier).
来源:https://stackoverflow.com/questions/44240178/jobscheduler-behaviour-on-android-o