Je souhaite créer un récepteur de diffusion en tant que classe interne dans mon activité principale. Mais j'ai des problèmes pour définir le récepteur de diffusion dans le fichier xml manifeste, parce que Android ne peut pas le trouver.Est-il possible de définir un récepteur de diffusion en tant que classe interne dans un fichier manifeste?
code:
public class MyActivity extends Activity{
...
public class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
....
}
}
...
}
Manifest:
<receiver android:name=".org.danizmax.myapp.MyActivity$Receiver" android:enabled="true">
<intent-filter>
<action android:name="org.danizmax.myapp.BROADCAST_INITIAL_DATA"></action>
</intent-filter>
</receiver>
J'ai essayé avec:
- .org.danizmax.myapp.MyActivity $ Récepteur
- org.danizmax.myapp .MyActivity $ Récepteur
- .MyActivity $ Récepteur
- .Récepteur
j'ai vu d'autres aussi avoir des problèmes similaires, mais n'a pas trouvé de réponses.
Alors, est-ce possible? Si non, quelle est la meilleure façon d'utiliser les récepteurs de radiodiffusion?
Merci!
Essayez de créer votre classe interne Statique. En outre, quel attribut de package définissez-vous dans votre manifeste? Cela détermine le point de départ de votre android: nom sur le récepteur. –
Ah cela fonctionne maintenant avec la classe statique et le nom du récepteur défini comme .MyActivity $ Receiver. Ajoutez votre commentaire sur le fait de rendre Static classe interne à votre première réponse afin que je puisse vous envoyer une certaine réputation. Merci! – danizmax
Désolé, je n'ai pas vu votre commentaire .. vous êtes seulement averti des commentaires sur les questions si c'est votre question, ou si vous utilisez un @username au début du commentaire. –