Hi

I have an application that starts a background thread to load data. It
uses Handler to pass data back to the main thread. Now this works
perfectly most of the time, but not when I switch orientation.

What I found was this behavior:
- onCreate : Start main view, with background load thread
- Switch android direction
- onStop : Kill background loading thread, does thread.interrupt +
thread.join.
- onCreate
- Data queue'd in the handler is still being pushed through from the
previous data load.
This produces a bit of a race condition for me. I can shutdown the
thread cleanly, but the data that's in the handler, between the thread
and the main view isn't always cleared.


This would be solvable with something like:
thread.interrupt();
thread.join();
handler.clear();
Before returning to the onStop function, but there's no .clear to just
empty a handler out.

How can I clear a Handler of all messages?  I use this for posting:
                        handler.post(new Runnable() {
                                @Override
                                public void run() {
                                        handler.onData(sendData);
                                }
                        });

So doing a .removecallback (which requires me to store runnables)
isn't real practical.

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

Reply via email to