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

Reply via email to