Keeping a flag on the AppDelegate and update it in the delegate methods is not just better, but necessary now.
Using a method that requires main_thread when you are not foreground will trigger the exception reporting and sometimes hangs your app (it works most of the time, but not always). I learned it the hard way in production.
Topic:
App & System Services
SubTopic:
Processes & Concurrency
Tags: