When we talk about time management, accuracy is paramount. Notifications are not so useful if they appear several minutes late.
Here’s what we did in TimeTune to avoid delays and achieve maximum accuracy.
Lately, there has been an increasing proliferation of manufacturer power optimizations in most devices. Many times, manufacturers don’t make it clear enough to the user how these optimizations work. And -sadly- many times these optimizations are not even correctly implemented.
This, added to the new (and non-optional) Doze Mode in Android Marshmallow and other optimizations caused by third-party battery saving apps can produce undesired blockings and delays in notifications and background tasks.
As devices become more powerful and need more resources, it seems an ‘anything goes’ war has started in all sides to try to save as much battery as possible. But at what cost? If saving battery means our devices won’t behave as expected, maybe it’s not worth it.
The problem is many times the user cannot choose how these optimizations behave or their configuration is so hidden and convoluted that they can’t even understand them.
And the final result is that we ended up having in our pockets incredibly powerful computer machines… that somehow cannot notify us at the proper time.
THE SOLUTION! (ANDROID 5.0 AND ABOVE)
Since Android Lollipop, Google introduced a special method (setAlarmClock) to schedule clock alarms. Google made it clear that this is the only way to wake up your device at an exact time. Other methods can (and will) result in delayed notifications when the device enters in sleep mode or other manufacturer optimizations enter in action.
What we did in TimeTune is using these clock alarms to schedule background tasks and notifications. And the results have been… awesome! All notifications now show up in time in stock Android and many users have reported improved accuracy in other different brands.
So starting TimeTune 2.0.2 this will be the default behavior, as it solves problems for many current users. However, as some people say, nothing is free. There is a small price to pay:
THE ALARM ICON
The use of clock alarms for background tasks makes the alarm icon appear on your status bar:
That’s why we added a new option in Settings / Advanced in case you want to opt out of this behavior. In TimeTune, you have the power to choose:
Choosing ‘weak’ alarms (the traditional background alarms we’ve been using so far) will make the alarm icon disappear, but we make it clear they are subject to blockings or delays.
ANDROID 4.4 AND BELOW
Users on Android 4.4 and below will see some improvements as well. Although they cannot choose clock alarms to achieve maximum accuracy, we’ve implemented the WakefulBroadcastReceiver method to prevent the device from entering sleep mode too fast before showing a notification.
In any case, remember to check the power management settings on your device to see how TimeTune is configured there. This is the main reason why notifications may still get blocked or delayed on your device.
ADDRESSING OUR MAIN PAIN
Commonly, 99% of the complaints we received were related to notifications being blocked or delayed. Users, understandably, expect a new app to behave perfectly in their devices. And if it doesn’t, the instinctive reaction is to blame the app.
It was very frustrating (and time-consuming!) for us to receive a low rating because of a delay when the problem was caused by manufacturer optimizations or other.
Addressing this pain will allow us to concentrate on what’s really important: making TimeTune better for you.
Thanks a lot for using TimeTune! 😉