utilisation registerReceiver pour non activité et non de la classe du service
Je suis en train de registerReceiver
pour BluetoothDevice des événements comme ACTION_ACL_CONNECTED
, ACTION_ACL_DISCONNECTED
.
Mais la classe dans laquelle je suis à l'aide de registerReceiver
ne s'étend pas Activity
classe ni Service
classe donc je suis de passage Context
à la classe et l'enregistrement du récepteur comme suit
context.registerReceiver(ActionFoundReceiver,
new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED));
context.registerReceiver(ActionFoundReceiver,
new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECTED));
context.registerReceiver(ActionFoundReceiver,
new IntentFilter(BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED));
et la gestion des événements comme suit
private final BroadcastReceiver ActionFoundReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
//do some stuff
}
}
};
mais lorsque le périphérique est connecté ou déconnecté, je ne suis pas en mesure de trace, je veux dire la ActionFoundReceiver
n'est pas en mesure d'obtenir appelé
OriginalL'auteur Hunt | 2012-11-05
Vous devez vous connecter pour publier un commentaire.
J'ai essayé de le résoudre à l'aide , mais je ne sais vraiment pas comment la sécurité est cela, et c'est une bonne pratique dans ce cas ou pas.
si quelqu'un a une meilleure sna n'hésitez pas à poster
OriginalL'auteur Hunt
Voici une esquisse d'un
BroadcastReceiver
qui fonctionne pour moi.Vous avez un peu de classe
MyBroadcastReceiver
qui fait tout le travail.MyBroadcastReceiver
est hébergé dans votreMyClass
(qui n'est pas une activité ou un service)MyClass
durée de vie est contrôlée parMyActivity
(ouMyService
) .Cela peut aussi être
onCreate
/onDestroy
ou dans un service.OriginalL'auteur k3b
J'ai quelques problème similaire, j'ai un récepteur pour l'envoi de sms, je m'inscrire mais ne s'est jamais appelé.
J'ai essayé de le faire, et n'a jamais été appelé
Bien, ce qui était mes surprises, qu'il a appelé lors de l'inscription de cette façon:
L'intérieur de la classe:
Juste quand je reçois une nouvelle instance, il fonctionne.
Espère que cette aide.
OriginalL'auteur Sulfkain