Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Starting foreground service in doze mode

I'm developing an app which connects to a special device via wifi. I need to make status updates in a short interval, resp. keep the status of my special device in the app up to date. FCM is not an option. My idea is to give the user two options: Fast updates using a foreground service or "slow" updates using a periodical update mechanism to save battery.

My question is about the second option. The interval should be around five minutes. Using JobScheduler therefore is not possible. But even using the AlarmManager seems not to be an option because I'm not able to get network access during the doze maintenance windows.

I thought about using a WakefulBroadcastReceiver to receive the Intent by the AlarmManager, require a WakeLock and turn my long running Service into foreground by calling startForeground(). But it seems that the startForeground() method has no effect on the Service as long as the device stays in doze mode.

I read many pages about doze and services but have no clue how to solve my problem... Does anyone got an idea?

like image 586
bartolja Avatar asked Nov 30 '25 16:11

bartolja


1 Answers

you should use GcmTaskService. You can schedule some interval for your operations and it would work fine even in doze mode, check more information by link

like image 200
A. Shevchuk Avatar answered Dec 02 '25 05:12

A. Shevchuk



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!