Saving battery with weak signals: My Guide
I wanted to post a quick FYI for people that live or work in areas of weak signal, and therefore have crappy battery performance. I've been battling this for a long time and I finally nailed down some good, simple, reasonable solutions that will greatly extend your battery life.
The problem: A very weak signal means extremely slow data, if not a complete halt. We have all kinds of crap on our phones that utilize mobile data, even while the phone is lying on the desk doing nothing. You don't see it or know it. But it's doing it. Every time it tries to connect and do something, the phones in wakelock, not sleeping. With a strong signal, or wifi, these things happen very quickly and cause very little wakelock. However, with a crap signal, it basically becomes a never-ending task. Your phone can be in wakelock nearly 100% of the time while it stupidly tried to do something it will never be able to accomplish. Your google account alone has 19 different things it tries to sync. Then there is facebook. Exchange email. Dropbox, etc etc etc. Then there is NETWORK LOCATION! The phone tries to figure out it's location using the cell network. Since your signal sucks, it basically spends all day trying to do this. Even if you turn off sync, network location will still keep it awake trying in vein.
First I'll address network location since it is the easiest and shortest. This again is the phone using the cell network to triangulate a location rather than using GPS. The only way to resolve this is to turn it off and reboot the phone after doing so. In my experience, turning the checkbox off doesn't take effect until you reboot the phone. Settings > Location > Use Wireless Networks. Uncheck that. You can leave the GPS enabled. You can leave the Google Location enabled, unless you don't want google maps to work. This is not a setting that you can turn on and off with tasker. Sorry. And even if you could, it still requires a reboot to be reliable. So since network location is useless to me (duh, that's what the GPS is for), I elected to just turn it off and leave it off.
Now, how do we reduce or eliminate the phone trying to endlessly sync a billion different things that are impractical to sync with a weak signal? Three ways.
1. Just turn off sync. Pretty simple. Nothing will sync in the background anymore. If you open your email and manually refresh it, it will sync. But you will not get any push communication from any of those accounts configured to background sync. For some, this may be fine. I can't do that because I need to at least get my e-mail and calendar push notifications.
2. Use tasker to turn sync on and off. This is basically taking #1 and automating it. You can use any criteria you want to turn the sync on and off. Schedule it based on day/time for example. Or maybe tell it to only use sync while you're on wifi. Up to you.
3. This is what I did and I love it. Go to the play store and buy the "Synker". This is an app and tasker plugin. The tasker plugin will allow you to individually control every account's sync state. Where as #1 and #2 are global, all sync on/off. This allows you to pick and choose what you turn on and off. I configured mine to only enable sync on my gmail, calendar, keep, and tasks while I am not on a WiFi network. I need those things all day, every day. And the amount of data they sync is very very minimal. So I found it has very very little wakelock even with the weak signal. When I am connected to a WiFi network, I have it turn on most of the other account sync stats. Things like app data, contacts, photos, etc. You know, the other 15 things it does that are data hogs.
My results... Before, my phone would be dead after about 4-6 hours of sitting idle on my desk at work. After making these configuration changes, I still have 30% left after 10 hours. Success.