I use a homemade MultiMap<Double, Thread> : the Double indicate the interrupt scheduling. This MultiMap is a TreeMap<Double, LinkedList<WeakReference<Thread>>>. Then I interrupt all threads with the right ordering. I must do this because some of my threads launch others threads.
Moreover, I set null all static vars in my package. But It's ugly because I must call public methods at the start of the Activity.
Thx for your comments.