...or take care of threading properly - instead of Thread.sleep, use a
monitor and wait on it with a timeout. Here's the pseudo code
(catching InterruptedException omitted):
// in your main thread
// when you launch the secondary thread make sure it's running before
you do anything else
synchronized (secondaryThreadRunning)
{
secondaryThread = new ...
secondaryThread.start();
secondaryThreadRunning.wait();
}
// before you exit the app (e.g. onStop)
synchronized (secondaryThreadStopMonitor)
{
secondaryThreadShouldStop = true;
secondaryThreadStopMonitor.notify();
secondaryThread.join(); // wait for it to finish
}
// 1st line in the secondary thread's run()
// signal main thread we're up and running
synchronized (secondaryThreadRunning)
{
secondaryThreadRunning.notify();
}
// in the secondary thread where you want to wait and then post
synchronized (secondaryThreadStopMonitor)
{
secondaryThreadStopMonitor.wait(your timeout);
if (secondaryThreadShouldStop)
{
// break the loop (if you have one) and exit the thread (i.e.
let it return from run())
}
else
{
// timed out, post to your handler [1]
}
}
[1] You might get a spurious wake here, so it's best to track the
elapsed time manually
In any case, make sure you're not doing too much work, it seems that
you can simply use:
Handler.postDelayed(Runnable r, long delayMillis) and in your handler
do it again
Cheers,
Stoyan
On Wed, Feb 18, 2009 at 7:48 AM, Romain Guy <[email protected]> wrote:
>
> In your application's onPause/onStop/onDestroy simply use
> Handle.removeCallbacks(Runnable).
>
> On Tue, Feb 17, 2009 at 9:46 PM, Dilli <[email protected]> wrote:
>>
>> Hi all,
>>
>>
>> I am developing a simple application with thread concept
>>
>> problem:
>>
>> In one thread i write
>>
>> {
>> Thread.sleep(10000) //10 sec sleep
>> m_handler.post(my_runnable); // to post to run another
>> runnable
>> }
>>
>>
>> before the thread wake up ( <10 sec) i stopped my application
>> exiting my application
>>
>> but the thread sleeped not killed and it wakes up after 10 sec and
>> try to post message
>> and it causes exception.
>>
>>
>> is there any way to kill the threads those are in sleep mode while
>> exiting the application ??
>>
>> and prevent to post using m_handler.
>>
>> Need suggetions
>>
>> Thank You..
>>
>> Dilli.
>>
>>
>>
>>
>>
>>
>> >
>>
>
>
>
> --
> 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
-~----------~----~----~----~------~----~------~--~---