在我的主要活动中,我有一个广播接收器
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());
}
}
}
};
并在我的Android清单中
<receiver
android:name=".MainActivity$the_receive"
android:enabled="true">
<intent-filter>
<action android:name="ax.androidexample.mybroadcast" />
</intent-filter>
</receiver>
这完全正常并接收传入的值。
但是当我想在另一个活动中接收另一个广播时
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());
}
}
}
};
在我的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>
我开始收到此错误:
Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
在我的MainActivity中
任何帮助将不胜感激。谢谢你堆
答案 0 :(得分:1)
考虑通过覆盖活动生命周期的方法或使用接收器的片段来注册和取消注册接收器。
活动现场循环: https://developer.android.com/guide/components/activities/activity-lifecycle.html
片段生命周期: https://developer.android.com/guide/components/fragments.html