Probablemente porque la activity se destruye. Ten en cuenta que no siempre es adecuado tener varias activities, y que en una sola puedes mostrar distintas "pantallas" (bien mostrando distintos paneles, o cargando distintos layouts). Cambiar de activity supone "resumes", "creates", que se destruyan las no visibles, etc... Échale un ojo a este
ejemplo
Lo adecuado para tareas que se ejecutan durante mucho tiempo, es que se ejecuten desde un servicio.
This is an old tutorial. Most of the information here is no longer correct. Basic4android v1.2 adds support for Service modules. Service modules play an important role in the application and process life cycle. Start with this tutorial if you haven't read it before: Android Process and...
www.b4x.com
Incluso sería mejor ahora mismo que estás digamos empezando, que usaras B4XPages y te quitas de líos de resume, etc... ya que la aplicación corre en una sola activity y está corriendo incluso cuando no es visible, hasta que la destruya el sistema operativo.
Existen
CallSubDelayed2, y CallSubDelayed3. O incluso puedes pasar un array de argumentos.