I'm still not understand what you mean by weaker connection. The way I read it, I thought you were talking about a failure first and just a slow connection second. Here are a few thoughts I had.
1) Slow connection - Throw up a dialog and then use an
async task to grab the data and update your UI.
2) Revisit the
connectivity manager . The documentation states it can be used to "Monitor network connections (Wi-Fi, GPRS, UMTS, etc.)" and "Send broadcast intents when network connectivity changes".