Un extrait de l'Android Activités (faire défiler vers le bas jusqu'au " durée de vie du premier plan ") dit :
Une activité peut fréquemment passer au premier plan et en sortir - par exemple, pour exemple,
onPause()
est appelé lorsque le dispositif se met en veille ou lorsqu'un dialogue apparaît .
Je ne comprends pas bien. Dans quelles circonstances cela devrait-il se produire ? Est-ce que onPause()
appelé seulement si le contexte de la boîte de dialogue en question est différent de l'activité sur laquelle la boîte de dialogue doit être affichée ?
EDIT : Ajout d'un exemple de code pour illustrer mon doute en détail
Si l'on se fie à la citation du document susmentionné, est-ce que les résultats de mon activité onPause()
est appelée lorsque la méthode AlertDialog
(ou seulement le Dialog
) dans le code suivant s'affiche ? Devrais-je voir l'entrée de journal "onPause called" lorsque la boîte de dialogue s'affiche ?
Mais je ne vois pas cela arriver. Et ça ne devrait pas non plus, si j'ai bien compris le cycle de vie d'Android ! Alors, qu'est-ce que le document pointe du doigt ?
public class LifeCycleTestActivity extends Activity {
private static final String TAG = "LifeCycleTest";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "onClick");
AlertDialog dialog = new AlertDialog.Builder(LifeCycleTestActivity.this).create();
dialog.setMessage("You Clicked on the button");
dialog.setTitle("Dialog!");
dialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
dialog.setCancelable(true);
dialog.show();
/*
Dialog dialog = new Dialog(LifeCycleTestActivity.this);
dialog.setTitle("Dialog!");
dialog.setCancelable(true);
dialog.show();
*/
}
});
}
@Override
protected void onPause() {
Log.d(TAG, "onPause() called");
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume() called");
}
}