2010-11-03 12 views
0

Lorsque je suis de retour de l'arrière-plan, la méthode onResume() est appelée. D'accord. Donc, si je veux faire un code spécial quand je suis de retour, je peux le mettre là.Android Retour d'arrière-plan: comment gérer le code?

Et si j'avais beaucoup d'activités? Dois-je dupliquer ce code partout? Dois-je utiliser la classe Application et appeler une méthode dans chaque méthode onResume()? De plus, j'aurais besoin d'accéder à l'interface utilisateur (changements, dialogues, ...). Peut-être que la classe d'application n'est pas une bonne idée ...? Concrètement , je veux rafraîchir mon cache toutes les XX fois et je veux faire cette vérification quand l'application (ou l'activité) est de retour de l'arrière-plan mais je ne sais pas exactement comment faire et où faire cette.

Comment faites-vous cela? Merci pour l'aide.

Répondre

1

S'il s'agit d'un code similaire, vous pouvez utiliser une classe de fonctions auxiliaires statiques et transmettre les fonctions this aux fonctions en tant que contexte afin de pouvoir exécuter des fonctions spécifiques à l'activité.

+0

Merci pour votre réponse. N'y at-il pas quelque chose de plus facile? Comme l'applicationDelegate dans iOS? –

+0

Il n'y a pas de délégués en Java (malheureusement) et je n'ai jamais programmé en iOS, donc je ne suis pas au courant de ce qu'est une applicationDelegare. – Jason

+0

Une alternative serait une BaseActivity dont toutes les sous-classes Activities. – manmal

0

Si vous voulez juste savoir quand une application revient de l'état d'arrière-plan (lorsque vous revenez à la maison ou une autre application et revenir à votre application à nouveau) peut-être que cela peut vous aider. Si vous trouvez un cas où cela ne s'applique pas, s'il vous plaît faites le moi savoir.


public class FatherClass extends Activity { 

     private static int activities = 0; 

     public void onCreate(Bundle savedInstanceState, String clase) { 
      super.onCreate(savedInstanceState); 
     } 

     protected void onRestart(){ 
      super.onRestart(); 
      if(activities == 0){ 
       Log.i("APP","BACK FROM BACKGROUND"); 
      } 
     } 

     protected void onStop(){ 
      super.onStop(); 
      activities = activities - 1; 
     } 

     protected void onStart(){ 
      super.onStart(); 
      activities = activities + 1; 
     } 
} 

Toutes vos classes doit se prolonger de celle-ci, ou augmenter et diminuer la valeur de cette classe.