Copied from the link above
A WORKAROUND HAS BEEN DISCOVERED. If your phone has been draining extremely fast under normal use (and you text) then this fix will likely help you! The quick explanation is that whenever you send a text, the Dialer is putting a lock on the phone preventing it from sleeping. This drains your phone extremely fast and also causes it to charge very slowly. Replacing the internal messaging app with a 3rd party SMS app from the market will workaround the issue. Look at the bottom of this post for more details, or continue reading if you want to see how we discovered the problem.
PLEASE READ THE FAQ AT THE BOTTOM OF THIS PAGE IF YOU HAVE ANY QUESTIONS OR PROBLEMS.
Update: SarahKS (Sprint admin on the forums) just made a post on page 16 of this thread: "That said, I was told that they've identified the problem with the messaging client which prevents it from sleeping after its run. This is on the fix list for an upcoming MR.
That's all I know at this point, but as soon as I receive the details about tthe MR I will pass them on."
----------------------------------------------------------------
My friend and I both purchased Heros and we are both seeing pretty poor battery life. Using a couple of different things we believe we have figured out where the problem lies, but we are unsure how to fix it!
Here's what we know:
Menu < Settings < About Phone < Status < Awake Time
Both of ours have an awake time of 100%. According to other Android users, the lower this number is the better your battery life. So basically this is saying that even when the phone is off, it's not asleep. It is fully awake 100% of the time. Up time should not be the same as awake time.
Using an app called Spare Parts (Spare Parts) you can dig a little deeper.
Spare Parts < Battery History < Partial Wake Usage < Since Last Unplugged.
My phone is showing that the dialer has a wake lock for 16h. This appears to mean that the phone can't sleep because the dialer has locked it.
You can also check under "Other Usage." I have "Running", "Screen on", and "Phone on." Running says:
Time spent without sleeping: 16 hours (100%).
PowerManager | Android Developers
Quote:Originally Posted by Android Developers
PARTIAL_WAKE_LOCK
Wake lock that ensures that the CPU is running. The screen might not be on.
*If you hold a partial wakelock, the CPU will continue to run, irrespective of any timers and even after the user presses the power button. In all other wakelocks, the CPU will run, but the user can still put the device to sleep using the power button.
So now the problem is how do we fix it?
UPDATE ON PROGRESS:
**SKIP THIS -- A BETTER WORKAROUND HAS BEEN DISCOVERED. NO NEED TO KILL THE PHONE APP.**
I have made some progress! I downloaded a program from the market that was simply called Task Manager. I previously had checked out TasKiller and TaskControl but neither saw the dialer. I opened Task Manager and clicked on "Phone" and got "This task is not exported. don't switch or stop it." Well I stopped it anyways. Instantly after hitting my power button I began to see a time difference between Up Time and Awake Time (5 minute time difference now).
I was also able to call my phone and text it! After doing so "Phone" showed back up in Task Manager however it is still sleeping properly. I'm not sure what else this is effecting yet or if resetting the phone causes it to mess up again.
UPDATE 2:
So I had to get some sleep last night. I will be doing lots of testing throughout the day. My phone slept about 7 hours through the night. I only had a 1% drop in battery life during the night! And I did receive a text this morning. The only thing I know for sure so far is that sending a text causes it to stop sleeping again. I will keep this thread updated as I run some tests today.
UPDATE 3:
So we have determined exactly when it happens. We tried all of the following:
receiving e-mail
checking e-mail
browsing the web
loading google maps and locking location
receiving text
reading text
making a phone call
receiving a phone call
Every single one allows the unit to go back to sleep without any issues. There are two things that prevent it from sleeping every time:
send a text
Turning the phone on with no activity
So sending a text is obvious. Every single time we sent a text, the phone would stop sleeping. Receiving a text is fine. What i mean by turning the phone on with no activity is if I turn the phone on and just let it boot up and disable the screen on it's own and never send or receive a text, it will stay awake even though the screen is off. The phone ends up turning the screen off before it actually boots 100%. Once I turn the phone back on and actually look at my home screen (after it's done booting) and then turn it off again, it will sleep properly.
I'll post more as we figure out more.
WORKAROUND FOUND:
Quick recap if you didn't read above: a bug has been found in the HTC sms app. For some reason when you SEND a text message it puts a lock on the dialer app. This lock prevents the phone from ever going to sleep, even when the screen is off. This is causing a HUGE drain on battery life because the CPU is still awake. The current workaround is to disable the internal sms app and use one of the free ones from the market instead. Thanks to mobilehavoc for testing out a new sms app and realizing that it didn't create the lock.
The current two recommendations are ChompSMS and HandCent. It is has been confirmed by multiple users (mobilehavoc, freshlyill, spork27, and myself) that the phone is sleeping properly if you don't use the internal messaging client (and of course assuming you don't have a different issue than described here!).
Between the two apps my personal recommendation is HandCent. It has a huge number of tweaks and can give you the same look and feel as the internal app.
FAQ:
Q) I killed the messages / dialer / phone using a task manager but my phone still isn't sleeping?
A) Killing the app is not necessary anymore. That was a temporary fix while I was working on figuring out exactly what caused the lock. All you need to do is use a 3rd party messaging app and stop using the internal app.
Q) I'm using a 3rd party app but now both the internal app and the 3rd party app are telling me I have a new message?
A) You need to disable notification from the internal app. All Programs < Messages < Menu < Settings < Uncheck auto-retrieve & uncheck Notifications.
Q) I followed all of your directions but my phone still isn't going to sleep?
A) It's possible that another app you have is preventing the phone from sleeping. You need to restore and start over.
1) Restore the phone to factory settings (Settings > Security > Factory data reset)
2) After the phone restores, boot it all the way up. Turn the phone all the way off and then boot it up again.
3) After the phone boots all the way, wake the phone up and put it to sleep a couple of times, then leave it asleep and wait 5 minutes. Check your awake/sleep time.
*For this to work then you should not have installed any apps after the restore, and do not send any texts. This rules out ALL issues of other apps you have installed preventing it from sleeping.
Q) How do I know if my phone is sleeping?
A) When your screen is actually turned off, there's no way for to know. However you can check your timer at: Settings < About Phone < Status < Awake Time. Pull it up and then put your phone to sleep. Wait 1 minute and then wake it up. If your awake time has counted by more than 5-10 seconds then your phone isn't sleeping. Also the % should be less than 100%. The lower the better. You can reset the timers by powering the phone off and on again.
Q) I don't even text, will this fix my phone?
A) Nope
Q) I have tried everything and my phone still won't sleep?
A) You are doing something wrong. Restore your phone and try again. It has been mentioned that possibly the pop-up notifications from handcent and/or advanced task killer free are causing the phone to not sleep.
Q) Why does it take so long to charge my phone?
A) Your phone should charge to full in about 3 hours when plugged in to AC (the wall). If you try charging through USB on a computer then you are actually in trickle charge and it will take much longer. HTC recommends that if you are below 10% that you don't even try and USB charge. This is to help preserve battery life for people that sync their phones a lot.