Wie ist der Lebenszyklus eines Fragments, wenn replace () aufgerufen wird?

Ich habe eine Reihe von Fragmenten, die mit dem folgenden Code dynamisch hinzugefügt werden:

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);
}

In einem meiner Fragmente habe ich einen Timer und ich habe gerade festgestellt, dass der Timer im alten Fragment noch läuft, wenn das Fragment ersetzt wird. Wo im Lebenszyklus meines Fragments soll ich den Timer abschalten?

BEARBEITEN:

Okay, ich habe einen timer.cancel () in die onStop () - Methode des Fragments eingefügt, aber onStop () wird auch aufgerufen, wenn ich die Einstellungen über eine Schaltfläche in der Aktionsleiste lade. Dies ist nicht der gewünschte Effekt. Irgendwelche anderen Ideen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage