And now I am experiencing similar issues, although not as severely yet, with my iPhone 12 Pro Max. Restarting the phone seems to help but there seems to be some battery and/or memory pressure that causes iOS to kill the non-active apps.
Ages ago apps used to have a bug where form contents were cleared if the user switched from portrait to landscape orientation -- same problem: developers assumed they could store state in instances of input fields, when in fact these would be re-instantiated when the view was significantly re-rendered.
This specific case seems like a continuation of that misunderstanding and a difference in intuition between Android architecture and PC developers, rather than an actual fault with Android.
Rotating your device or plugging in a keyboard should cause the UI to be torn down: it makes for a horrible UX and it's behavior that dates back to a phone that had 192MB of RAM.
It should have been ditched ages ago but in typical Android fashion lived on so long that now it can't really be changed and instead the SDK tries to work around it by providing developers with primitives to work around it.
They might also be lacking competence. My local bus authority’s application is barely able to keep track of its state while it’s running.
An other common situation is an applications getting in an irrecoverably broken running state. If the application preserves state on shutdown you might not be able to get it out of the broken state.
Please don't do this.
It won't be impossible to architect an app so that there would be an instance of a class that store all relevant states and load on creation, of course, and I'm guessing that level of competence is mid-six-figure quality in app world.
But I'm not an app developer so there is presumably a reason for that. Data exfiltration?
Most developers are not aware of them, and in any case it's very hard to constantly save all the state
Hardly any previous system in the history of computers has ever required it, and Android's developer documentation doesn't highlight enough how much it's required.
Most of all it's the fault of these phones' extreme, undeclared, undocumented and absurd behavior anyhow.
https://developer.android.com/guide/components/activities/pr...
The expectation in mobile environments is that you store whatever information you need to resume from cold in response to the app leaving the foreground, since the OS may kill it with little further warning at any time thereafter. This recommendation occurs prominently in the lifecycle docs for both iOS and Android.
It is quite common for the OS to suspend apps when they're in the background or when the device is under low memory/power conditions. The fact that you as a user are experiencing it in the form of degraded functionality is a bug with the app itself and should be addressed by the developer.
As a reference, check iOS apps where the system monitors and controls each app's resource usage much more aggressively and a user is never aware of this.
So the map app is buggy… my expectation would be that it should be fixed.
This drives me absolutely nuts.
But it’s weird and lazy that on an 8GB phone they kill the app rather than just suspend it (to stop it using any cpu)?
On iOS, even in low-power mode, and on a phone with far less RAM, apps rarely have to reload unless you’ve force-quit them or have gone for days without using them.
Hence my personal belief: GUI operating systems must evolve to slow down to match user-expected frequency of stimuli. Too fast and users leave, so they add crufts and weights until it's slow enough.
Android and iPhones thought they'd look cooler if they didn't, resulting in a decade of endless frustration for many users.
I'm pretty sure that the task bar and start button could get swapped out btw, but they're quick to reload (except for the start menu and the tray icons)
The reason I first discovered "don't kill my app" is that my apps would close as soon as I switched to another one, in most cases. For example if I used maps and switched to a call / browser tab / Telegram chat, when I got back to the map the app would reload. My search would be gone, and I would have to set my destination again.
I hope you can agree that this is terrible user experience. If I wanted to save battery, I could have just closed my apps manually, I don't need my phone to take the initiative.