I understand how background execution works on iOS, but I've always wondered how Background App Refresh toggles really work in iOS Settings.
First things first: What's needed for an App to be shown in Background App Refresh list in Settings?
Obviously, Apps that have "fetch" present in their "UIBackgroundModes" are listed there. It makes sense. But also Apps having "remote-notification" seem to be present. Examples: PayPal (remote-notification) and Telegram Messenger (audio, remote-notification).
Please correct me if I'm wrong or if I miss something.
Here comes the problem: try disabling Background App Refresh for Telegram and have someone message you while the App is not running in the foreground.
What happens? A remote push notification wakes Telegram and it downloads your message in the background.
So what have you achieved by disabling its Background App Refresh toggle? Remember Telegram only uses "audio" and "remote-notification" background modes.
First things first: What's needed for an App to be shown in Background App Refresh list in Settings?
Obviously, Apps that have "fetch" present in their "UIBackgroundModes" are listed there. It makes sense. But also Apps having "remote-notification" seem to be present. Examples: PayPal (remote-notification) and Telegram Messenger (audio, remote-notification).
Please correct me if I'm wrong or if I miss something.
Here comes the problem: try disabling Background App Refresh for Telegram and have someone message you while the App is not running in the foreground.
What happens? A remote push notification wakes Telegram and it downloads your message in the background.
So what have you achieved by disabling its Background App Refresh toggle? Remember Telegram only uses "audio" and "remote-notification" background modes.