Précisions cycle de vie application
Bonjour,
j'ai une appli très simple dont le code est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
public class pageOK extends Activity {
private static String value = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null) {
value = extras.getString("TEXT_USER");
}
if(value.length()==0){
value = "Vous n'avez écrit aucun texte";
}
setContentView(R.layout.pageok);
final TextView TW1 = (TextView) findViewById(R.id.textView1);
TW1.setText(value);
final CheckBox CB1 = (CheckBox) findViewById(R.id.checkBox1);
CB1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
// TODO Auto-generated method stub
}
@Override
public void onResume(){
super.onResume();
final TextView TW1 = (TextView) findViewById(R.id.textView1);
TW1.setText(value);
}
@Override
public void onPause(){
super.onPause();
}
} |
Alors voila, j'affiche une valeur string passé en argument de l'activité précedente. La valeur s'affiche sans pb. Ce que je ne comprends pas, c'est quand je clique sur le bouton home du telephone, et que je reviens dans l'appli, (on passe donc pas le onresume seulement), je lui demande de me ré afficher dans la textview la valeur du string "value". Et cette valeur est conservée.
Je me pose donc la question de l'utilité des fonctions
Code:
1 2
|
public void OnSaveInstanceState(Bundle savedInstanceState) |
et
Code:
1 2
|
public void onRestoreInstanceState(bundle ....) |
Ces deux fonctions sont censés être utilisées pour conserver les données lorsque l'appli passe en arriere plan. Quel est l'interet si toutes les données sont déja conservée ?
Je pensais que l'appli ne mafficherait rien dans ma textview en passant par onResume, car "value" obtiens sa valeur seulement dans le onCreate(), et est null à l'initialisation..
Voila si vous pouvez m'éclairer ce n'est pas de refus :)
Bonne journée