2010-10-02 16 views
2

J'ai ActivityLanding qui appelle une activité appelée ActivityFolder. Dans l'intention j'ai utilisé putExtra ("folderId", "...") (je sais que folderId n'est pas le meilleur exemple)Question sur le cycle de vie de l'activité: onNewIntent/onSaveInstanceState

Je peux stocker cela à une variable et l'utiliser très bien mais si finalement mon activité est tuée pour économiser de la mémoire, je peux perdre le folderId. Lorsque mon activité sera à nouveau lancée, les «extras» seront-ils préservés? Le code ci-dessous fonctionnera-t-il correctement?

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.folder); 
    onNewIntent(getIntent()); 
} 
@Override 
protected void onNewIntent(Intent intent) { 
    super.onNewIntent(intent); 
    setIntent(intent); 
    String folderId = intent.getStringExtra("folderId"); // Might not be all digits 
    // load from server and fill in the blanks 
} 

Si elle ne se conserve ,, puis puis-je changer à l'aide AsyncTask et il fonctionne toujours bien?

private class MyAsyncTask extends AsyncTask<String, Object, HashMap<String, Object>> { 

....................................... 
....................................... 
....................................... 
    @Override 
    protected void onPostExecute(HashMap<String, Object> result) { 
     if (this.isCancelled()) 
      return; 
     ..................... 
     ..................... 
     ..................... 
     getIntent().putStringExtra("folderId", ""); // The server wants us to change what folder we are looking at 
    } 
} 

Répondre

0

Quand mon activité se lance à nouveau ,, seront les « extras » de l'intention se préserver?

Oui.