Atrasar execução no Android

Queremos fazer algo mais tarde às vezes, geralmente implementamos usando Timer, no entanto, podemos usar Hanlderpara fazer isso facilmente.

protected final void doSomething() {
// do some thing here
}

protected final void doSomething(long duration) {
Message msg = Message.obtain(mHandler, DO_SOMETHING);
mHandler
.sendMessageDelayed(msg, duration);
}

protected Handler mHandler = new Handler() {

@Override
public void handleMessage(Message msg) {
if (msg.what == DO_SOMETHING) {
doSomething
();
}
}
};