问题
I have an IOS app that during testing seems to work fine until...
The app has been in the background for quite some time, say 24 hours... and meanwhile lots of activity has taken place in other apps (videos, audio, location... battery going low... lots of memory being used).
Then when I bring my app back into the foreground, it acts glitchy such as having no audio... and then crashes after a short while.
I KNOW this is not the best description, but it has only happened once and I'm not asking anyone to tell me exactly what the problem is.
What I would really like to know is:
Does IOS do anything with backgrounded apps such as tossing out objects they may need from memory? I would think that if it did do this, then it would restart the app the next time it's resumed rather than attempting to resume the un-resumable.
Thanks!
回答1:
The system may deem it necessary to free up some memory if it's running low on it, and is expecting you to handle such situations by implementing UIApplicationDelegate
method applicationDidReceiveMemoryWarning and UIViewController
method didReceiveMemoryWarning.
Documentation for those methods don't mention what does the system do behind the scenes when those methods are called (only that you should free up as much memory as possible, otherwise your app may get terminated), but this blog post claims that the system may destroy internal objects like graphic contexts or internal stores.
来源:https://stackoverflow.com/questions/50406686/how-does-ios-manage-memory-of-backgrounded-apps