alexk-il

You should not be spawning threads yourself, as it is against Android
best practices.  Instead look at ASyncTask, which provides methods for
pre-execute, onUpdate, and postExecute, and are automagically handled
by the  Activity manager, so you don;t need to worry about killing
them in this manner.

On Dec 30, 3:43 pm, alexk-il <[email protected]> wrote:
> Hi Mark,
>
> Thanks for your help. I am registering for the CW group as well.
>
> Cheers
> Alex
>
> P.S. My example also needs to be fixed :). The declaration> >        boolean 
> isRunning=false;
>
> should be put before the onStart() definitions (within the class
> scope).
>
> On Dec 28, 7:29 pm, Mark Murphy <[email protected]> wrote:
>
> > alexk-ilwrote:
> > > Hi,
>
> > > I'm really enjoying Mark's "Beginning Android" - everything is clear
> > > and straight to the point.
>
> > > I wonder why in the Threading example the "isRunning" flag wasn't
> > > declared "volatile". The flag is used to stop a thread from another
> > > thread.
>
> > > In case you have the book (or even wrote it :) ) - it's on page 143.
> > > In case you don't, the simplified version of the code goes like this:
>
> > > public class fooBar extends Activity{
> > >    ...
> > >    public void onStart() {
> > >        super.onStart();
>
> > >        // why not volatile?
> > >        boolean isRunning=false;
>
> > >        Thread BG=new Thread(new Runnable() {
> > >            public void run() {
> > >               try {
> > >                   while(isRunning){
> > >                      // Do something
> > >                   }
> > >               }
> > >               catch (Throwable t) {
> > >                  // Do something
> > >              }
> > >       });
>
> > >       isRunning=true;
> > >       background.start();
> > >    }
>
> > >    public void onStop() {
> > >       super.onStop();
> > >       isRunning=false;
> > >    }
> > > }
>
> > > I know, the code works on android, so what am I mising here?
>
> > Hmmmmm...
>
> > Usually, I use AtomicBoolean rather than volatile, but I apparently used
> > neither here. On the whole, booleans are as thread-safe as a datatype
> > gets, since we're only talking about a bit. That being said, I am being
> > a bit sloppy there, and should improve matters.
>
> > Thanks for pointing it out!
>
> > BTW, you're welcome to use the [cw-android] Google Group for questions
> > on _Beginning Android_:
>
> >http://groups.google.com/group/cw-android
>
> > --
> > Mark Murphy (a Commons 
> > Guy)http://commonsware.com|http://twitter.com/commonsguy
>
> > Android Training in US: 8-12 February 2010:http://bignerdranch.com-Hide 
> > quoted text -
>
> > - Show quoted text -

-- 
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.

NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android

To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en

Reply via email to