News for hackers. Stuff that matters.
Re:Android vendors, don’t kill my app by xupybd on Monday January 14, 2019 @02:06AM (#18901215)
I actually like the move to kill background tasks. Don't get me wrong I think they're great when they're needed. But if I only installed the app because the mobile site is crippled I don't want it to destroy my battery polling for content changes when I only open the app once in a blue moon.
Re:Android vendors, don’t kill my app by GeneralTspoon on Monday January 14, 2019 @03:17AM (#18901501)
The right way to solve this is with explicit permissions (similar to iOS). Rather than arbitrarily and sporadically crippling apps with opaque limitations.

Google & manufacturerers have gone too far in the quest for the Holy Grail of extending battery life. To the point where it’s negatively affects the user experience quite often (there are quite a few examples in these comments).

It makes Android overall seem more buggy (for example, not receiving notifications for an instant messaging app is pretty ridiculous, assuming I’ve opted in and want these notifications).

One other big issue is that push-based wake-ups on Android don’t work reliably. For example, on iOS, if you want to wake up the app in the background when you come in range of an iBeacon, you can do so (with user permission), and it just works. Meaning you don’t need to run a special arbitrary background job (which is much less battery efficient).

On Android - BLE wakeups are so incredibly unreliable that entire classes of apps are becoming less and less viable. And without the loophole of running background jobs to manually scan for beacons, users (and developers) are basically shit out of luck.

Re:Android vendors, don’t kill my app by Nursie on Monday January 14, 2019 @05:05AM (#18901947)
God save us from beacon-related functionality anyway. No I don't want my day interrupted for a message about your service, sorry!
Re:Android vendors, don’t kill my app by GeneralTspoon on Monday January 14, 2019 @07:05AM (#18902410)
In that case you wouldn’t opt-in to beacon notifications.

But there are many people with varying use-cases - some of whome want reliable BLE detections on their devices. And if they opt-in to these notifications, then it’s a shitty experience when it doesn’t actually work as intended.

Re:Android vendors, don’t kill my app by Nursie on Monday January 14, 2019 @07:43AM (#18902548)
> In that case you wouldn’t opt-in to beacon notifications.

Never have, got 'location related alerts' a few times before I figured out how to switch them all off, without ever having opted in.

To be fair I have no idea if these were BLE related, but they were annoying.

Re:Android vendors, don’t kill my app by scarface74 on Monday January 14, 2019 @06:30AM (#18902248)
It makes Android overall seem more buggy (for example, not receiving notifications for an instant messaging app is pretty ridiculous, assuming I’ve opted in and want these notifications).

Do instant messaging apps really need to be running to listen for notifications? Why isn’t listening for notifications being handled by one central Android process that then dispatches it and launches the app if necessary?

Re:Android vendors, don’t kill my app by GeneralTspoon on Monday January 14, 2019 @06:52AM (#18902352)
That’s exactly how it works - but this service itself is throttled.

And, in Android 9, “App Buckets” will increase/decrease throttling depending on your usage of the app.

For example, an app that you don’t open regularly, but do want receive timely notifications from (like a banking app, or calendar/scheduling app), might only get 1 window a day where it receives notifications.

Re:Android vendors, don’t kill my app by scarface74 on Monday January 14, 2019 @07:06AM (#18902413)
There is a difference between a notification that is sent to the user just to tell them something and then the user can take action (meaning no need to wake up the app) and a notification to the app for the app to do something in the background.

The former should always get to the user, the latter on iOS is controlled by both the OS based on an algorithm and by the user who can specifically turn off background processing on a per app basis on iOS.

Re:Android vendors, don’t kill my app by me551ah on Monday January 14, 2019 @02:12AM (#18901237)
Killing background tasks is great and Android does that automatically to save battery usage. But these manufacturers have implemented their own functionality on top of Android which cripples even critical messaging applications like WhatsApp, Slack, Gmail by not delivering Instant Messages notifications instantly.
Re:Android vendors, don’t kill my app by Arnt on Monday January 14, 2019 @02:46AM (#18901381)
And worse, what they're doing confuses android's own code into thinking the apps are crashy.

So if you run e.g. (new JobInfo.Builder(1234, name)).setRequiresCharging(true).setRequiresDeviceIdle(true)... to do something heavy (like reindexing an on-device database) while the phone is charging, that job will simply not be run on some phones. You have to check whether it's been run at app startup, and if necessary run it while the user is actively using your app.

Re:Android vendors, don’t kill my app by trsfgbb on Monday January 14, 2019 @02:28AM (#18901303)
Xiaomi Redmi Note 3 Pro even kills Google Maps navigation after few minutes (with screen on). I have to use MAPS.ME, it doesn't kill it.
Re:Android vendors, don’t kill my app by xyproto on Monday January 14, 2019 @02:36AM (#18901337)
I don't want WhatsApp (owned by Facebook) to run in the background on my phone at all times. I don't trust them, especially after Instagram (also owned by Facebook) started using the camera by itself on my phone, without my permission.

Slack would be fine, I guess.

Re:Android vendors, don’t kill my app by izacus on Monday January 14, 2019 @02:56AM (#18901424)
I think you misunderstood the core issue here - it's not that the USER can decide what runs. It's that the USER cannot override those settings and decide that something can run and function if required. There are special whitelists for apps that are allowed exceptions (e.g. Facebook and other common apps are usually allowed to work) and others are killed against the Android API guarantees (e.g. you install Signal messaging app and you don't receive messages because Huawei didn't whitelist the app).
Re:Android vendors, don’t kill my app by mcny on Monday January 14, 2019 @06:52AM (#18902351)
> I think you misunderstood the core issue here - it's not that the USER can decide what runs. It's that the USER cannot override those settings and decide that something can run and function if required. There are special whitelists for apps that are allowed exceptions (e.g. Facebook and other common apps are usually allowed to work) and others are killed against the Android API guarantees (e.g. you install Signal messaging app and you don't receive messages because Huawei didn't whitelist the app).

I blame it on stock Android. Phone manufacturers probably don't want to spend money on OS changes but Android doesn't do the right thing by default so they have to make changes.

The right thing to do is to deny apps launching at startup, apps running in background, and apps getting network access. Let the user say yes or no. Your use case for signal is different from mine. Maybe I just want to see messages when I open the app?

But yeah I agree, the user should be in control.

Re:Android vendors, don’t kill my app by izacus on Monday January 14, 2019 @03:12PM (#18906032)
Android has done the right thing at least since 6.0 and that has resulted in massive battery life improvements.
Re:Android vendors, don’t kill my app by dbrgn on Monday January 14, 2019 @02:55AM (#18901417)
The irony: Many manufacturers factory-whitelist apps like WhatsApp, Skype, sometimes Telegram. That means that smaller messengers get killed (=no more new message notifications) and users complain to the developer because "with WhatsApp everything works fine"...
Re:Android vendors, don’t kill my app by GeneralTspoon on Monday January 14, 2019 @02:56AM (#18901421)
These days the app doesn’t run in the background when receiving an FCM push notification (unless it’s already awake). The message is created by a separate Google Play Services process. It’s only when you click the notification does the target app’s process get woken up.

IMO, the best way to solve this is with an explicit “Let this app run in the background” permission, rather than implementing all these “smart” features which are incredibly non-deterministic. Which leads to developer & user frustration alike.

Take the example of the new “App Bucketing” battery saving feature in Android 9, plus a banking app and WhatsApp....

App Bucketing will basically restrict your background processing based on how often you interact with the app. So for your banking app (where you usually want immediate spending notifications), because you don’t really open the app that often, it’s going to start throttling your notifications (and prevent it from running arbitrary background jobs).

But for WhatsApp on the other hand - because you’ll likely open it more often - it will have full permissions to run in the background any time.

If as a user you wanted to prevent arbitrary WhatsApp background jobs and get instant banking notifications - well tough luck!

Re:Android vendors, don’t kill my app by cwyers on Monday January 14, 2019 @03:15AM (#18901494)
Then you need to uninstall the app. No phone is going to guarantee you that it won't run.
Re:Android vendors, don’t kill my app by xyproto on Tuesday January 15, 2019 @06:14PM (#18916622)
Yes, I just have to cover the same functionality in other ways before removing my accounts.
Re:Android vendors, don’t kill my app by daveFNbuck on Monday January 14, 2019 @02:28AM (#18901304)
I don't want Slack or Gmail to deliver notifications instantly. I'd love to have functionality that saves battery by delaying them.
Re:Android vendors, don’t kill my app by dbrgn on Monday January 14, 2019 @02:56AM (#18901422)
If the app is killed that doesn't just delay notifications. It prevents them until you manually open the app again.
Re:Android vendors, don’t kill my app by daveFNbuck on Monday January 14, 2019 @11:30AM (#18904164)
Yeah, but we're talking about manufacturers adding custom functionality that delays notifications to save battery.
Re:Android vendors, don’t kill my app by dtech on Monday January 14, 2019 @03:59AM (#18901663)
So why not disable the notification functionality if you don't want it?
Re:Android vendors, don’t kill my app by daveFNbuck on Monday January 14, 2019 @10:58AM (#18903920)
I want the notification functionality, I just don't need it to be instant.
Re:Android vendors, don’t kill my app by zo1 on Monday January 14, 2019 @12:47PM (#18904769)
Delaying them by how much?
Re:Android vendors, don’t kill my app by daveFNbuck on Monday January 14, 2019 @11:04PM (#18908784)
For Gmail, an hour delay would be fine. For Slack, probably 5 minutes would be ok.
Re:Android vendors, don’t kill my app by scarejunba on Monday January 14, 2019 @02:31AM (#18901318)
Both these apps allow you to do that in-app. I have Gmail not notify me for work emails and notify me for stuff on my personal account.
Re:Android vendors, don’t kill my app by daveFNbuck on Monday January 14, 2019 @11:00AM (#18903943)
I want all the notifications. This was a question about timing. I don't want them to do the constant polling required for the notifications to appear instantly.
Re:Android vendors, don’t kill my app by rplnt on Monday January 14, 2019 @03:30AM (#18901557)
That doesn't save the battery though.
Re:Android vendors, don’t kill my app by me551ah on Monday January 14, 2019 @02:30AM (#18901313)
Get one of the phones listed in the link. Xiaomi is brilliant in this regard !
Re:Android vendors, don’t kill my app by daveFNbuck on Monday January 14, 2019 @11:31AM (#18904174)
Does it allow the user to configure the delays per app?
Re:Android vendors, don’t kill my app by handzbagz on Monday January 14, 2019 @05:58AM (#18902130)
Don't most apps use GCM to deliver notifications anyway?
Re:Android vendors, don’t kill my app by superasn on Monday January 14, 2019 @04:31AM (#18901817)
Yes this is very true. Some apps like Truecaller just destroy the battery like there is no tommorow. Most other app including some games keep running just to tell me when it's time to collect my mystery box.

Point being the majority of the apps are badly coded to poll or drain battery, send unnecessary notifications.

This reminds me of the popup blocker thing in web browsers. While there were some legitimate uses most of the time it's abused so every browser blocked it.