2010-01-12 4 views
1

plateforme Android 1,5Android 1.5 et 1.6 AFER appeler l'activité d'arrivée et le bouton home comportement bizarre

  • I ouvrir l'écran de démarrage à la fin que j'appelle finish() puis je me suis déplacé pour parcourir la page.
  • Sur la page de navigation lorsque je clique sur le bouton d'accueil Cacher l'application. (B/c de fonction multitâches Android)
  • Quand je vais à la demande de lancement de bureau Android à nouveau, il commence à partir de l'écran de démarrage.

plateforme Android 1,6

  • I ouvrir l'écran de démarrage à la fin que j'appelle finish() puis je me suis déplacé pour parcourir la page.
  • Sur la page de navigation lorsque je clique sur le bouton d'accueil, l'application est masquée (b/c de la fonction Multi-tâches d'Android)
  • Lorsque je me rends à l'application de lancement de bureau d'Android, elle démarre toujours à partir de l'écran de navigation. pourquoi donc ?

Je mettais toutes les données en exemple OnSave

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    outState.putString(WLConstants.READ_GPS, readGPS); 
    outState.putSerializable(WLConstants.SEARCH_CRITERIA, searchCriteria); 
    outState.putString(WLConstants.PARAM_WHERE, locationField.getText().toString()); 
    outState.putBoolean(WLConstants.PARAM_NEAR_ME, rNearMe.isChecked()); 
    super.onSaveInstanceState(outState); 
    Log.v(TAG, "onSaveInstanceState()"); 
} 

je suis extraire des valeurs de méthode oncreate

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
if(savedInstanceState != null){ 
Log.v(TAG,"instace found"); 
}else{ 

Log.v(TAG,"instace not found"); 
} 
} 

« instance a conclu que » jamais s'appeler signifie qu'il ne retourne jamais paquet aucune raison Pourquoi ?

+0

Quelqu'un vient de poster une réponse disant qu'ils avaient des problèmes similaires avec leur historique de pile, mais seulement quand ils s'exécutaient sous le débogueur: http://stackoverflow.com/questions/2061143/android-keep-tasks-activity-stack-after -restart-de-home/2061447 –

Répondre

1

Je viens d'essayer avec une application sur les appareils 1.5 et 1.6 qui fait la même chose que l'activité LAUNCHER est un écran de démarrage, qui démarre alors l'activité "principale" et appelle finish() sur lui-même. L'activité de démarrage a également l'attribut noHistory. Quoi qu'il en soit, sur les deux appareils, l'écran principal a été affiché comme prévu après avoir appuyé sur Accueil, puis à nouveau sur l'icône du lanceur.

Je ne pense pas qu'Android offre des garanties quant à savoir si votre processus sera toujours actif lorsque vous le lancerez à partir de l'icône du lanceur. Vous pouvez donc commencer à partir de l'endroit où votre pile de tâches s'est arrêtée, ou à partir de l'activité LAUNCHER. Mais dans votre cas, et dans mon expérience en ce moment, vous devriez généralement vous retrouver sur votre écran de "navigation" lorsque vous frappez le lanceur. Sauf si votre système est ridiculement surchargé.

Quoi qu'il en soit, à propos de l'état de l'instance: avez-vous essayé de voir si l'appel super.onSaveInstanceState(outState) d'abord dans la méthode fait une différence? Notez également que cette méthode est normalement appelée uniquement lorsque l'activité est supprimée par le système; pas seulement quand il va à l'arrière-plan. Il ne devrait rien y avoir à faire dans ce cas.

Questions connexes