Reputation: 367
In my Main Activity I have a broadcast Receiver
public static class the_receive extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
if(extras.containsKey("retvalue")){
test.setText(extras.get("retvalue").toString());
}
}
}
};
and in my Android manifest
<receiver
android:name=".MainActivity$the_receive"
android:enabled="true">
<intent-filter>
<action android:name="ax.androidexample.mybroadcast" />
</intent-filter>
</receiver>
This works perfectly fine and receives incoming values.
However when I want another broadcast receive in another Activity
public static class b_receive extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
if(extras.containsKey("retvalue")){
text.setText(extras.get("retvalue").toString());
}
}
}
};
And in my Android Manifest
<receiver
android:name=".MainActivity$the_receive"
android:enabled="true">
<intent-filter>
<action android:name="ax.androidexample.mybroadcast" />
</intent-filter>
</receiver>
<receiver
android:name=".testService$b_receive"
android:enabled="true">
<intent-filter>
<action android:name="ax.androidexample.mybroadcast" />
</intent-filter>
</receiver>
I start getting this error:
Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
In my MainActivity
Any help would be appreciated. Thank you heaps
Upvotes: 0
Views: 53
Reputation: 31
Consider registering and unregistering your receiver by overriding methods of the lifecycle of the activity or fragment you use your receiver in.
Activity Live Cycle here: https://developer.android.com/guide/components/activities/activity-lifecycle.html
Fragment Live Cycle here: https://developer.android.com/guide/components/fragments.html
Upvotes: 1