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 --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---