2010-03-24 6 views
4

Je développe une application qui est notifiée lorsqu'un utilisateur a démarré Activity. Pour que cela fonctionne, la meilleure approche serait d'enregistrer un BroadcastReceiver pour ACTION_MAIN explicite Intent s, qui pour autant que je sais ne fonctionne pas (parce que ces Intent s ont des cibles spécifiques). Une autre approche, probablement moins efficace, consiste à utiliser le système ActivityManager et à interroger le getRunningTask() qui renvoie une liste de toutes les tâches en cours pour le moment. L'interrogation peut être effectuée par un service d'arrière-plan. En surveillant les changements dans cette liste, je peux voir si une activité est en cours ou non, de sorte que mon application peut être notifiée. L'inconvénient est bien sûr le sondage. Je n'ai pas encore essayé, mais je pense que cette dernière approche fonctionnera probablement.Recevoir des notifications/recevoir des intentions de déclenchement d'une activité

Quelqu'un sait-il d'une meilleure approche (s) ou des suggestions qui sont moins intensives? Pourquoi ne pas simplement appeler getParent()?

+0

J'ai mis en œuvre la deuxième possibilité. Tout dépend de votre application à quelle fréquence vous voulez interroger – Blundell

Répondre

0

Pourquoi?

Ce serait votre enfant Activity

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent intent = new Intent(); 

    //Create this method in your Parent Activity 
    getParent().onChildCreated(this, intent); 
} 

Ce serait dans votre parent Activity

public void onChildCreated(Activity child, Intent intent) { 
    /* 
    * Have fun (Edited to pass intent) 
    */ 
} 
Questions connexes