[Nexus One Themes and Apps] genuser:
OK, so here is how I manage my high speed connections. To me managing battery life is the primary motivation, so what I am doing below is all about only turning on WiFi and 4G when needed and leaving them off when not in a high data intense app.

First, I have 2 profiles to detect when I am HOME, WORK or OTHER. I am using CellNear for this and it's been very solid for me. In addition to managing my ringvolumes, these two profiles set 3 variables that I use elsewhere (%AT_HOME, %AT_OTHER, %AT_WORK).

Profile: Set Home (28)

State: Cell Near [ Cell Tower / Last Signal:CDMA: ~snip~ ]

Enter: Anon (29)

A1: Variable Set [Name:%AT_HOME To:1 Do Maths:Off Append:Off]

A2: Variable Set [Name:%AT_OTHER To:0 Do Maths:Off Append:Off]

A3: Ringer Volume [Level:7 Display:Off Sound:Off]

A4: Notification Volume [Level:7 Display:Off Sound:Off]

Exit: Anon (30)

A1: Variable Set [Name:%AT_HOME To:0 Do Maths:Off Append:Off]

A2: Variable Set [Name:%AT_OTHER To:1 Do Maths:Off Append:Off]

A3: Ringer Volume [Level:5 Display:Off Sound:Off]

A4: Notification Volume [Level:5 Display:Off Sound:Off]

Profile: Set Work (21)

State: Cell Near [ Cell Tower / Last Signal: ~snip~ ]

Time: From 07:30 Till 17:00

Day: Mon, Tue, Wed, Thu or Fri

Enter: Anon (31)

A1: Variable Set [Name:%AT_WORK To:1 Do Maths:Off Append:Off]

A2: Variable Set [Name:%AT_OTHER To:0 Do Maths:Off Append:Off]

A3: Ringer Volume [Level:0 Display:Off Sound:Off]

A4: Notification Volume [Level:4 Display:Off Sound:Off]

Exit: Anon (32)

A1: Variable Set [Name:%AT_WORK To:0 Do Maths:Off Append:Off]

A2: Variable Set [Name:%AT_OTHER To:1 Do Maths:Off Append:Off]

A3: Ringer Volume [Level:5 Display:Off Sound:Off]

A4: Notification Volume [Level:5 Display:Off Sound:Off]

​

Next, I have a profile that launches for any of the applications that I have identified as needed high speed access. FB, browser, news reader, etc.

I have played with this profile the most. The challenge is keeping the profile from switching 3G to 4G or 3G to WiFi in the middle of your first page load or it fails. So the delays you see are intended to allow you to get your first page load and then making the connectivity switch while you are reading.

This profile manages another variable called %HIGHSPDRQST. Note that %HIGHSPDRQST can be any positive value and I increment it everytime that I launch a "high speed app" and I decrement it everytime I exit a high speed app.

Additionally, I don't increment it right away it has a 15second delay before making the request. This delay is enough for my phone to launch my first page in the browser and then while I am reading that first page Tasker is making the switch over to my high speed connection (4G or WiFi). I originally didn't have that delay and everytime I launched the browser the connection dropped and there I sat waiting.

On the exit, I delay decrement for 15 minutes. This number is pretty flexible, but it allows me to close the browser and open up a news reader without experiencing the connectivity change. It just keeps %HIGHSPDRQST > 0 for as long as you want for app changes or interruptions.

Profile: High Speed App (2)

Application: Facebook, Internet, Phandroid...

Enter: Anon (3)

Run Both Together

A1: Wait [MS:0 Seconds:15 Minutes:0 Hours:0 Days:0]

A2: Variable Add [Name:%HIGHSPDRQST Value:1 Wrap Around:0]

A3: Flash [Text:HIGHSPDRQST = %HIGHSPDRQST Long:Off]

Exit: Anon (5)

Run Both Together

A1: Wait [MS:0 Seconds:0 Minutes:5 Hours:0 Days:0]

A2: Variable Subtract [Name:%HIGHSPDRQST Value:1] Variable Subtract [ %HIGHSPDRQST > 0 ]

A3: Flash [Text:HIGHSPDRQST = %HIGHSPDRQST Long:Off]

​

Finally, I have 3 profiles that actually turn on the appropriate high speed radio when the variable %HIGHSPDRQST is greater than 0. When %AT_HOME or %AT_WORK is set I turn in WiFi. If %AT_OTHER then I turn on 4G.

Profile: Manage High Speed - Home (9)

State: Variable Value [ Name:%HIGHSPDRQST Op:Maths: Greater Than Value:0 ]

State: Variable Value [ Name:%AT_HOME Op:Maths: Equals Value:1 ]

Enter: Anon (10)

Run Both Together

A1: WiFi [Set:On]

A2: Flash [Text:Turning Wifi ON Long:Off]

Exit: Anon (11)

Run Both Together

A1: WiFi [Set:Off]

A2: Flash [Text:Turning Wifi Off Long:Off]

Profile: Manage High Speed - Work (12)

State: Variable Value [ Name:%HIGHSPDRQST Op:Maths: Greater Than Value:0 ]

State: Variable Value [ Name:%AT_WORK Op:Maths: Equals Value:1 ]

Enter: Anon (13)

Run Both Together

A1: WiFi [Set:On]

A2: Flash [Text:Turning Wifi ON Long:Off]

Exit: Anon (16)

Run Both Together

A1: WiFi [Set:Off]

A2: Flash [Text:Turning Wifi Off Long:Off]

Profile: Manage High Speed - Other (20)

State: Variable Value [ Name:%HIGHSPDRQST Op:Maths: Greater Than Value:0 ]

State: Variable Value [ Name:%AT_OTHER Op:Maths: Equals Value:1 ]

Enter: Anon (27)

Run Both Together

A1: WiMax [Set:On]

A2: Flash [Text:Turning WiMax ON Long:Off]

A3: Wait [MS:0 Seconds:0 Minutes:2 Hours:0 Days:0]

Exit: Anon (33)

Run Both Together

A1: WiMax [Set:Off]

A2: Flash [Text:Turning WiMax Off Long:Off] ​

This has been working great for me. On two instances of bouncing back and forth between apps my %HIGHSPDRQST went above 10 and Tasker didn't like that. Net result was that the variable never dropped back to 0 and it left my WiFi ON. This has only happened twice in many months so I haven't taken the time to find a solution. All you have to do is go into Tasker and reset the variable back to 0. Life is good.

If someone see's a better way to accomplish this, please let me know.