Atividades, threads e vazamentos de memória

Sempre crie Thread & Handler como um membro estático de sua classe para evitar vazamento de memória.

static final class MyThread extends Thread {

@Override
public void run() {
// do long operations here
}
}

Se você precisar de referência à classe externa, use WeakReference .

static final class MyThread2 extends Thread {

public WeakReference<Activity> reference;

public MyThread2(Activity reference) {
this.reference = new WeakReference<Activity>(reference);
}

@Override
public void run() {
// do long operations here
Activity activity = reference.get();
if (activity == null) {
return;
}
// activity.someMethod();
}
}

Mais detalhes aqui .