Originally Posted by dankarlinski
Wirelessly posted (White and Nerdy)
The app will not work until you restart it because of the fact that the system is using the files. Its just like windows update. End of story
I don't think that's what Adrian was asking about.
I actually think his question was more subtle, and a good one at that.
A user has downloaded a new binary, OTA, which replaced the existing running copy of your app INLINE. Since the app is running memory resident, the OS tells the user that a restart is required in order to properly install the new version - which is correct.
The user chooses not to, for whatever reason, but at this point you don't want the OLD version of your app to keep running -- indeed, there may have been a reason for the update (perhaps a server communication component has changed, and the client needs to match), and you need the restart so that the new version runs.
Adrian's question is a good one -- how do you, in the above circumstance, programatically determine if the device is in a "Reboot Pending/Required" state, even if the reboot doesn't happen for hours or days, his "old version" of the app needs to know that a new version is pending full installation.
Unfortunately, I'm not sure how to address this. I'll take a look into this right now, because the the question is solid, and a resolution would be quite useful for posterity.