All of the callback methods on Service, such as onStart(), happen in the main UI thread. If you have a long job to do, use the Thread class to do it in another thread. Semantically this is the same as the Activity callbacks.
On Fri, Mar 13, 2009 at 4:48 PM, Bob <[email protected]> wrote: > > I'm sorry, I don't understand what this means. I have no callbacks. > The service inserts some data into the filesystem and then exists. > How do I this so the UI won't hang while the processing is going on? > > On Mar 13, 2:51 pm, Dianne Hackborn <[email protected]> wrote: > > startService() tells the system to start the service. The Service > callbacks > > are still made on the main thread, as always. > > > > > > > > On Fri, Mar 13, 2009 at 12:22 PM, Bob <[email protected]> wrote: > > > > > >> If you have lots of work to do, do it in a background thread. > > > > > Thanks, I thought I running on a different thread by calling the > > > service from a background thread. Have I done this incorrectly or > > > should I not be using the context object? > > > > > public void openInitialThread() { > > > Thread updateThread = new Thread(null, backgroundRefresh2, > > > "new_thread"); > > > updateThread.start(); > > > } > > > > > private Runnable backgroundRefresh2 = new Runnable() { > > > public void run() { > > > ComponentName > service=_context.startService(new > > > Intent > > > (_context,InitialContentService.class)); > > > > > } > > > }; > > > > > On Mar 13, 12:56 pm, Dianne Hackborn <[email protected]> wrote: > > > > Um... it sounds like you are just doing a lot of work in the main > > > thread, > > > > and getting an ANR dialog. Don't do that. :) If you have lots of > work > > > to > > > > do, do it in a background thread. All Service callbacks happen on > the > > > main > > > > thread. > > > > > > On Fri, Mar 13, 2009 at 11:16 AM, Bob <[email protected]> wrote: > > > > > > > Thanks, I'll look more at the logs for crash issue. But regardless > of > > > > > the crash, am I correct in thinking that if I call a service it > should > > > > > do its processing in the background and the main UI thread should > > > > > immediately update? For this does it matter whether I start the > > > > > service from a background thread or not? The crash doesn't occur > for > > > > > a while into the processing but in the mean time my UI is not > > > > > progressing. > > > > > > > On Mar 13, 11:03 am, Dianne Hackborn <[email protected]> wrote: > > > > > > At the very least, you should include (and look at!) the stack > crawl > > > of > > > > > the > > > > > > crash. That will usually tell you all you need to know about why > it > > > > > > crashed. The stack crawl is in the log. > > > > > > > > On Fri, Mar 13, 2009 at 9:39 AM, Bob <[email protected]> > wrote: > > > > > > > > > Thanks for your quick response. It doesn't access or modify > any > > > > > > > views. It accesses the context to read in some raw resources > and > > > > > > > writes to the sqllite database also via context. > > > > > > > > > On Mar 13, 9:32 am, Streets Of Boston <[email protected] > > > > > wrote: > > > > > > > > Hi Bob, > > > > > > > > > > Your code snippet is not enough to give you some more info. > > > > > > > > E.g. how does backgroundRefresh2 looks like (it public void > run() > > > > > > > > implementation). > > > > > > > > > > Based on its name 'backgroundRefresh2': does it access View-s > and > > > > > > > > modify these view (e.g. update text-view, images, etc.)? > > > > > > > > If so, that may explain your crash. You should not access any > > > View > > > > > (or > > > > > > > > subclass of View) in any other thread than your main message- > > > > > > > > dispatching thread (i.e. the thread on which your > > > onCreate/onDestroy/ > > > > > > > > onPause/onResume/on<anything> is called). > > > > > > > > > > On Mar 13, 11:05 am, Bob <[email protected]> wrote: > > > > > > > > > > > Hi, > > > > > > > > > I have moved some intensive processing from my main thread > to a > > > > > > > > > service. My UI is hanging and then crashing when I start > the > > > > > service, > > > > > > > > > even if I put the service start in a new thread started via > > > > > > > > > > > Thread updateThread = new Thread(null, backgroundRefresh2, > > > > > > > > > "new_thread"); > > > > > > > > > updateThread.start(); > > > > > > > > > > > What am I doing wrong? Also, it seems like the cause of > the > > > > > eventual > > > > > > > > > crash in the service/worker thread doesn't show up in > LogCat. > > > > > > > > > > > Thanks, > > > > > > > > > Bob > > > > > > > > -- > > > > > > Dianne Hackborn > > > > > > 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. > > > > > > -- > > > > Dianne Hackborn > > > > 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. > > > > -- > > Dianne Hackborn > > 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. > > > -- Dianne Hackborn 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 -~----------~----~----~----~------~----~------~--~---

