2009-12-11 7 views
0

J'ai un programme qui a une broadcast receiver qui écoute Phone_State et envoie ensuite un utilisateur défini intent.Problème avec les intentions système

Eh bien, mon problème est que le système envoie également un intent (celui que j'essaie de remplacer par mon programme).

Je suis en train de trouver un moyen de CANCEL the systems intent.

J'ai trouvé que si j'ai une minuterie attendez juste un peu, alors je peux envoyer le mien après les systèmes, mais ce n'est pas très bon, et parfois défait le but de mon programme.

En outre, je ne peux pas définir mon programme par défaut parce qu'il est pas un programme de numérotation complet. Juste une action de celui-ci.

Quelqu'un s'il vous plaît me aider à trouver comment écouter et annuler un système intent/activity ....

Répondre

0

Quelqu'un s'il vous plaît me aider à trouver comment écouter et annuler un système intention/activité

Vous ne pouvez pas "annuler" une activité, période.

Vous ne pouvez pas remplacer le transmetteur.

Si le système Intent a été envoyé via sendOrderedBroadcast(), vous pouvez appeler abortBroadcast() de votre BroadcastReceiver et des récepteurs à faible priorité n'obtiendrez pas la diffusion. Cependant, je n'ai aucune preuve que ACTION_PHONE_STATE_CHANGED est une diffusion ordonnée, et j'espère sincèrement que ce n'est pas le cas.

Tout ce que vous essayez de faire devrait probablement être accompli par des modifications à votre propre firmware personnalisé.

+0

Donc, vous dites que je ne peux pas simplement éclipser en quelque sorte l'intention du système, sans attendre juste pour l'intention du système pour aller ensuite à moi d'appeler? Et malheureusement, je ne sais pas comment écouter une activité spécifique ... Y at-il un moyen d'écouter le gestionnaire d'activité pour une activité spécifique? –