I want to create a broadcast receiver as an inner class in my main activity. But I have problems defining the broadcast receiver in manifest xml file, because android can't find it.
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>
I tried with:
I saw others also having similar problems, but did not find any answers.
So is it possible? If not, what's better way to use broadcast receivers?
Thanks!
An intent is a messaging object, a broadcast receiver is an app component. An intent is used to request some action from some app component, it could be a broadcast receiver, an activity or a service.
A broadcast receiver is implemented as a subclass of BroadcastReceiver class and overriding the onReceive() method where each message is received as a Intent object parameter. public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.
Yes, it is possible.
The receiver android:name attribute should look like .path.to.class.MyClass$MyInnerClass
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With