-1

I have an app that uses service to run gps updates, but when the screen is turned off gps request updates stops and I don't get any updates at all until screen comes back on again. Tried with

Samsung S9 (Android 8 (Not working)), Huawei P9 Lite(Android 7 (Not working)), LG G3 (Android 6 (Working)), Nexus 7 (Android 8(Not Working))

Neimantas Jocius
  • 89
  • 1
  • 1
  • 6

1 Answers1

1

Recently i answered similar answer here.

In oreo release Android defined limits to background services.

To improve the user experience, Android 8.0 (API level 26) imposes limitations on what apps can do while running in the background.

Still if app need to run its service always, then we can create foreground service.

Background Service Limitations: While an app is idle, there are limits to its use of background services. This does not apply to foreground services, which are more noticeable to the user.

So create a foreground service. In which you will put a notification for user while your service is running. See this answer (There are many others)

Now what if you don't want a notification for your service. A solution is for that.

You can create some periodic task that will start your service, service will do its work and stops itself. By this your app will not be considered battery draining.

You can create periodic task with Alarm Manager, Job Scheduler, Evernote-Jobs or Work Manager.

  • Instead of telling pros & cons of each one. I just tell you best. Work manager is best solution for periodic tasks. Which was introduced with Android Architecture Component.
  • Unlike Job-Scheduler(only >21 API) it will work for all versions.
  • Also it starts work after a Doze-Standby mode.
  • Make a Android Boot Receiver for scheduling service after device boot.
Khemraj Sharma
  • 52,662
  • 21
  • 188
  • 195