I want to perform a reachability check each time my app comes to foreground in order to warn the user that remote data might be outdated. Can I rely on the fact, that 3G or Wi-Fi have been properly initialized at app start? Or should I delay the reachability check in order to avoid "false positives". If I should delay it, what would be a sufficient delay interval?
Maybe there is even a more recommended approach?
Always try to do your connection first. Only when it fails should you use Reachability to determine if you're offline, and to determine when you should automatically retry.
Trying your connection may re-activate the network in a way that checking for it won't.
It is, however, entirely appropriate to listen for Reachability's notification that the network has come online and to try again then (assuming you're not already trying).
To be clear: