Question

J'apprends une programmation Android pour une classe et j'ai une question rapide sur la finition () pour la fin du cycle de vie de l'activité.

Lorsque vous apportez un appel à terminer (), quel rappel de cycle de vie est-il démarré?Je présume que c'est l'onpaause (), puis OnStop () et Ondestroy ().Est-ce correct?

Vraiment, je veux juste m'assurer que cela ne saute pas directement à Ondestroy ().

Était-ce utile?

La solution

Vous êtes correct.Onpause, OnStop, Ondestroy.

ici sont les documents.

Autres conseils

Vraiment, je veux juste m'assurer qu'il ne saute pas directement à Ondestroy ().???

Non!

mais il y a une exception lorsque Calling Terminer () Résultat dans l'activité Lifecycle Break Cela se produit lorsque vous appelez Terminer () à partir de la méthode Oncreate () auquel cas OnDestroy () sera immédiatement appelé!

http://developer.android.Com / Référence / Android / App / Activity.html # Oncreate (Android.os.Bundle)

Oui, il ne saura pas à OnDestroy () sauter l'onpace et Ontop.

Aussi vous êtes peut-être intéressé par ONPOSTRESUME (), ONPOSTPAUSE (), OnPostCreate (), OnSerleaveHint () , etc .... Celles-ci ne sont pas répertoriées dans le cycle de vie d'activité

Cela pourrait également être très intéressant pour vous d'analyser de tels problèmes et de tels problèmes.Vous pouvez par exemple définir un point d'arrêt debugginin dans la méthode Onpause () et enquêter sur le flux de programme à partir de ce point.

Certaines impressions peuvent également vous donner des informations utiles.

vous pouvez par exemple écrire system.out.println ("nom de la méthode" + "appelé");Dans chaque méthode de votre activité que vous pensez être appelée.(Écraser par exemple onpaause () , appelez super.onpause () et placez une console imprimée pour voir si la méthode est appelée.

Vous apprendrez beaucoup sur le système Android de faire de telles enquêtes pendant que vous développez.

Créer une nouvelle application Android et placez ceci dans l'activité principale.

Ensuite, affichez la fenêtre LOGCAT (sous DDMS de Android) pour les sorties

Construisez votre application.

Lorsque votre programme est exécuté, vous pouvez surveiller ce qu'on appelle et à quelle heure.

package com.app.myapp;


import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;


public class MyApp extends Activity
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        LinearLayout layout = new LinearLayout(this); 

        Button exit = new Button(this);
        exit.setText("finish");
        exit.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v)
            {
                // TODO Auto-generated method stub
                Log.v("MyApp", "finish");
                finish();
            }
        });

        layout.addView(exit);

        setContentView(layout);

        Log.v("MyApp", "onCreate");
    }

    @Override
    protected void onDestroy()
    {
        // TODO Auto-generated method stub
        super.onDestroy();

        Log.v("MyApp", "onDestroy");
    }

    @Override
    protected void onPause()
    {
        // TODO Auto-generated method stub
        super.onPause();

        Log.v("MyApp", "onPause");
    }

    @Override
    protected void onRestart()
    {
        // TODO Auto-generated method stub
        super.onRestart();

        Log.v("MyApp", "onRestart");
    }

    @Override
    protected void onResume()
    {
        // TODO Auto-generated method stub
        super.onResume();

        Log.v("MyApp", "onResume");
    }

    @Override
    protected void onStart()
    {
        // TODO Auto-generated method stub
        super.onStart();

        Log.v("MyApp", "onStart");
    }

    @Override
    protected void onStop()
    {
        // TODO Auto-generated method stub
        super.onStop();

        Log.v("MyApp", "onStop");
    }

}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top