February 23rd, 2012
Under Variables, you'll need to create two variables. I called them %DATA and %SCREENOFFTEST.
Under Profiles, create a profile called Screen Off Data Off. The triggers are the event Display Off and the state Not Power Any. Then create a Task called Screen Off Data Off.
You can see what I built here. The basic gist of it in plain English is that it turns on a temporary test to see if the screen stays off. Then it waits 15 minutes. If the test is still on, it turns the data off, turns auto-sync off, and then cancels the test.
Tapping the wrench in the bottom-right corner brings up the Task Properties. Set the Collision Handling to Abort Existing Task. This means if you turn the screen off and then turn it on again and turn it off again within 15 minutes, the first instance of this task will be aborted in favor of the most recent time you turned the screen off.
The next Profile is called Screen On Data On. The triggers are an event of Display Unlocked and a state of Not Airplane Mode. Then you'll also create a Task called Screen On Data On.
For this profile, you can see the end product again. The gist is: if you wake up the screen, that test from earlier should be off. And then if data is off, you turn it back on again.
I made the timeout 15 minutes so that the data isn't constantly turning off and on again, but I still get the battery life savings. I also turned off auto-sync for good measure. It doesn't really need to be off, though. If data is off, Android won't look to auto-sync. Lastly, I made the trigger for screen on data on to be unlocking instead of just turning the display on. That's because on my phone (the Galaxy Nexus) it can be sometimes easy to accidentally jostle the power button, so I don't want to turn on data until I unlock the phone, which means I'm actually using it for something data-related. The data reconnects fairly quickly on the Galaxy Nexus (on my old phone—the MyTouch 4G—the reconnection time was much longer).
I hope you found this helpful!