¿Cuál es el ciclo de vida de un fragmento cuando se llama replace ()?

Tengo un número de fragmentos que se agregan dinámicamente usando el código siguiente:

private class DrawerItemClickListener implements ListView.OnItemClickListener { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { selectItem(position); } } private void selectItem(int position) { // update the main content by replacing fragments Fragment fragment = null; if(position == 0){ fragment = new FirstFragment(); } else if(position == 1){ fragment = new SecondFragment(); } else if(position == 2){ fragment = new ThirdFragment(); } FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); // update selected item and title, then close the drawer mDrawerList.setItemChecked(position, true); setTitle(mCalculatorTitles[position]); mDrawerLayout.closeDrawer(mDrawerList); } 

En uno de mis fragmentos tengo un temporizador y acabo de descubrir que cuando se reemplaza el fragmento, el temporizador en el fragmento antiguo sigue funcionando. ¿Dónde en el ciclo de vida de mi fragmento debo matar el temporizador?

EDITAR:

De acuerdo, así que agregué un timer.cancel () en el método onStop () del fragmento, pero onStop () también se llama cuando carga las preferencias de un botón en la barra de acción. Este no es el efecto deseado. ¿Alguna otra idea?

Me gustaría matar a cualquier temporizador o trabajo Async en onStop()

http://developer.android.com/guide/components/fragments.html#Lifecycle

Citando el doc del API:

Detenido
El fragmento no es visible. Se ha detenido la actividad del host o se ha eliminado el fragmento de la actividad, pero se ha añadido a la pila posterior. Un fragmento parado todavía está vivo (toda la información de estado y de miembro es retenida por el sistema). Sin embargo, ya no es visible para el usuario y se matará si se cancela la actividad.

Fragmento del ciclo de vida:

Ciclo de vida del fragmento

La tarea del temporizador no está relacionada con el ciclo de vida de los fragmentos. Puede cancelar el temporizador cuando termine su trabajo con ese fragmento. El método onStop de Fragment es un buen lugar para hacerlo.

 public void onStop() { super.onStop(); timer.cancel(); } 
  • ¿Por qué parece que tomar mucho tiempo para que este bloque sincronizado obtenga un bloqueo?
  • El desarrollo de Android cambia la visibilidad de TextView
  • Cómo usar daga en un proyecto de biblioteca de Android
  • Aprendiendo C / C ++ y Java
  • Cambio entre la API de Google Maps para Android v2 DEBUG y la clave de API de RELEASE
  • Consumir servicios REST en Android, la forma más fácil?
  • Uso de colores de color.xml en código java
  • Retornos de carro / saltos de línea con \ n en cadenas en Android
  • Consultar tabla con subclases-como las relaciones
  • Error de Eclipse directamente después de @SuppressWarnings ("unchecked")
  • Qué patrones de diseño debo aprender antes de iniciar Android Development
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.