This will run the CPU at 100%.  With the screen off, this will tremendously
impact battery life.  With it on, it will be at least noticeable.

How accurate do you need to be?  Have you tried other approaches such as
posting messages at a time?  What priority are you running your timing
thread at (priority would be the first thing I look at when it comes to
accuracy).

On Tue, Dec 28, 2010 at 4:06 AM, Slash4 <alex.cen...@gmail.com> wrote:

> Hi,
>
> I'm working on a metronome application, so I need a rather accurate
> time-measuring system to fire the metronome sound at the right time.
> Actually I found a solution, but I'm wondering if my method will not
> be cpu consuming. Here is the code snippet :
>
>     t = new Thread() {
>        public void run() {
>
>          long neededTime = 0;
>          while(isRunning){
>
>            long curTime = SystemClock.uptimeMillis();
>
>            if(curTime>=neededTime){
>
>              neededTime = curTime + (60000/tempo);
>              playSound(clickSoundId,100);
>
>              incrementBeat();
>
>              mHandler.post(mUpdateUi);
>            }
>          }
>        }
>    };
>    t.setDaemon(true);
>    t.start();
>
> You can see I set up a semi-infinite loop with rather frequent
> accesses to uptimeMillis() . I chose this method after having some
> issues with sleep() which is not accurate enough. When I want to stop
> the metronome, I just have to set isRunning to false.
>
> How can I evaluate the impact of this on CPU and battery ?
>
> Thanks a lot.
> Rgds, Alex
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com>
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Dianne Hackborn
Android framework engineer
hack...@android.com

Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails.  All such
questions should be posted on public forums, where I and others can see and
answer them.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to