Thanks for the quick answer. That helped, a lot. Not quite fantastic yet though.
No background activity: < 300ms (gesture starts something, until something ends) With background activity, before 3500ms With background activity, after 1500ms (All numbers are just guesstimeasured for illustration purposes...) Anything else I can do? ;-) 2009/2/18 Romain Guy <[email protected]> > > The proper way to set your thread priority is to execute the following > line *in run() method of the thread*: > > Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND) > > On Wed, Feb 18, 2009 at 11:32 AM, Mariano Kamp <[email protected]> > wrote: > > Hi, > > > > I wrote an app that acts as a Google Reader client. It downloads an XML > > from Google, parses it and afterward analyzes web pages with regular > > expressions to find image and stylesheet tags to make the pages available > > offline. > > > > So far so good. The problem is the above mentioned tasks are pretty CPU > > intensive and I also use gesture to mark items as read etc. The gesture > > detection gets really bad when done during the synchronization phase (see > > above). > > > > Those tasks from the synchronization phase are not time critical. I > would > > like to tell the OS that the UI thread is far more important than my > > background thread. I just don't know how to do that efficiently. > > > > In an ideal world the OS would take care of that for me, so I started > out > > with "Thread.currentThread().setPriority(Thread.MIN_PRIORITY);". That > didn't > > have any obvious effect. Then I sprinkled "Thread.yield()" in all major > > areas, in particular in the loops. But that also didn't seem to have much > of > > an effect. Before I know start to to all kind of silly stuff, I'd like to > > pick your brains on how this is done properly? > > > > I am absolutely willing to use Thread.sleep(20) in some of the places I > use > > Thread.yield. A little bit of a pause might be a good thing for the > battery > > heat and power consumption, but I can't let the pause get really long, > e.g. > > 250ms, because I wouldn't get any work done and would keep the phone > awake > > unnecessarily (I am holding a partial wake lock). On the other hand I am > not > > sure if a small pause now and then, like a 20ms pause, then 50ms work, > won't > > take too much a toll on the CPU for switching tasks and in the end burn > the > > battery too fast. > > Also, what seems like a good pause for the G1 might be not so much of a > good > > idea on different hardware, like a Netbook. > > > > I could try to set the Priority of the UI thread to MAX_PRIORITY, but > as I > > didn't start the thread, I feel that it's not my business to change its > > priority. > > > > I could check if the screen is off. If that is the case high resolution > > touch events are not so likely so I could revert all the measurement from > > above until the screen comes on again. > > > > So what do you think? I guess I am not the only one with the problem, > or > > am I? > > > > Cheers, > > Mariano > > > > > > > > > > > -- > Romain Guy > Android framework engineer > [email protected] > > Note: please don't send private questions to me, as I don't have time > to provide private support. 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 [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

