You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Android introduced background execution limits for apps targeting API level 26. This will make life very difficult for a long-lived connection service such as our message center. FCM whitelisting is not really an option because it lasts 10 seconds 😕
Consider using a permanent foreground service when running on Android 8 (it sucks I know).
Commit 935bafe introduced manual registration of the network state receiver, although it never showed problems so far, I'm not sure it's the correct way to go. I mean, the registration happens only when the application context is running. But when the process will be removed from memory, the context will go away, together with the broadcast receiver. We'll keep the receiver registered because it can be useful while the app is running, but we need something else to wake us up eventually.
Using WorkManager is a no-go for now because we're not ready to switch to AndroidX yet. However, we could just use a foreground service on API levels that require it and stick to the background service otherwise.
So this means startForegroundService on every call. Expect for older Android versions where we could check if the user granted us background execution. Otherwise just force a foreground service 👼
Other IntentService-based stuff (or similar) should probably be migrated to JobIntentService.
Android introduced background execution limits for apps targeting API level 26. This will make life very difficult for a long-lived connection service such as our message center. FCM whitelisting is not really an option because it lasts 10 seconds 😕
Consider using a permanent foreground service when running on Android 8 (it sucks I know).
Commit 935bafe introduced manual registration of the network state receiver, although it never showed problems so far, I'm not sure it's the correct way to go. I mean, the registration happens only when the application context is running. But when the process will be removed from memory, the context will go away, together with the broadcast receiver. We'll keep the receiver registered because it can be useful while the app is running, but we need something else to wake us up eventually.
Using WorkManager is a no-go for now because we're not ready to switch to AndroidX yet. However, we could just use a foreground service on API levels that require it and stick to the background service otherwise.
So this means startForegroundService on every call. Expect for older Android versions where we could check if the user granted us background execution. Otherwise just force a foreground service 👼
Other IntentService-based stuff (or similar) should probably be migrated to JobIntentService.
Deadline: 2018-11-01
https://developer.android.com/about/versions/oreo/background
The text was updated successfully, but these errors were encountered: