Je veux 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 un fichier XML manifeste, car Android ne le trouve pas.
Code:
public class MyActivity extends Activity{
...
public class Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
....
}
}
...
}
Manifeste:
<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:
J'ai vu que d'autres avaient également des problèmes similaires, mais je n'ai trouvé aucune réponse.
Est-ce donc possible? Sinon, quelle est la meilleure façon d'utiliser les récepteurs de diffusion?
Merci!
Oui c'est possible.
L'attribut récepteur Android: nom doit ressembler à .path.to.class.MyClass$MyInnerClass
Si vous le souhaitez avec une classe interne non statique , vous ne pouvez pas le faire via AndroidManifest.xml. Vous pouvez cependant enregistrer dynamiquement le BroadcastReceiver: Receiver comme classe interne dans Android