Вам нужна многопоточность.Если вы звоните доп.активность, он использует пользовательский интерфейс, поэтому вы не должны использовать таймер.Только обработчик.Многие Java-классы для многопоточности не предназначены для работы с пользовательским интерфейсом Android.Используйте этот класс:
import android.os.Handler;
/**
* Examples of use:
*
* Waiter(Runnable call, 30000); - in the calling method
*
* @author Petr Gangnus
*/
public class Waiter {
/**
* the handler that works instead of timer and supports UI
*/
static private Handler handler = new Handler();
Runnable task;
public Waiter(Runnable task,long time){
this.task=task;
handler.removeCallbacks(task);
handler.postDelayed(task, time);
}
public void stopWaiting(){
handler.removeCallbacks(task);
}
}
// setting the task called - in the calling method
final private Runnable call = new Runnable() {
@Override
public void run() {
...;
}
};