“Thread déjà commencé” lors de la reprise de l'activité

Voici ma situation:
Je suis la construction d'un jeu pour android et mon activité du jeu est composé d'une coutume surfaceView qui a un fil pour le jeu de logique et de rendu. L'architecture est similaire à la LunarLander démo à partir du site web de Google.

Lorsque l'activité commence, il crée le surfaceView et les appels de cette méthode:

    @Override
    public void surfaceCreated(SurfaceHolder holder)
    {   
        renderThread.start();
    }

Lorsque j'appuie sur le bouton home pour quitter le jeu, le onPause() la méthode est appelée, qui appelle surfaceDestroyed(). Dans surfaceDestroyed j'ai arrêter le jeu Thread en appelant:

    @Override
    public void surfaceDestroyed(SurfaceHolder holder)
    {
        synchronized(holder)
        {
            renderThread.stop();
        }
    }       

L'application va à l'arrière-plan de l'amende. Puis, quand j'ai relancer l'application en appuyant sur l'icône, j'obtiens un "Thread déjà commencé" message dans le journal avec un "force close" popup sur l'écran. Ce message se produit lorsque l'activité entre dans le "surfaceCreated" méthode lors de l'appel à la méthode start() sur le thread de rendu.

Maintenant que j'ai regardé en elle pendant des heures et ne peut pas comprendre pourquoi cela est. Je crois que mon fils est arrêté quand j'ai fermer l'application, donc je ne comprends pas pourquoi il dit qu'il a déjà commencé.

OriginalL'auteur NioX5199 | 2010-06-30