Android: Try as we might, you can never avoid finicky Wi-Fi and low-signal areas. Connection Checker will save your phone's battery (and a little bit of your sanity) by disconnecting crappy connections automatically.
Connection Checker will check your connection every few minutes to see if you have internet. If not, it will automatically turn that connection off. If you're on Wi-Fi, that means it'll switch you back over to a probably more reliable 3G connection, and turn Wi-Fi back on later to see if it's gotten any better. If you're just running on your regular data connection but aren't getting any signal, it will put your phone in Airplane Mode, reconnecting when you have better access to the internet. Since your phone uses more battery when it has bad or no signal—since it's constantly trying to connect—having the data turn off entirely can be a real battery saver.
Connection Checker is a free download for Android devices. There is also a $1.65 Pro version with a few advanced features, like notifications and disabling autorun.