如何使用广播

时间:2016-01-11 14:49:02

标签: android broadcastreceiver

我正在使用

发送广播
Intent intent = new Intent();
intent.setAction("com.example.android.name");
intent.putExtra("CODE", code);
使用

检索额外数据时,在广播侦听器类的onReceive方法中

String code = intent.getStringExtra("CODE");

我得到空指针异常。 任何帮助如何检索数据。

public class ReceiveNetworkBroadcast extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Bundle extras = intent.getExtras();
        String code = extras.getString("CODE");
        Log.e("NET_BCAST_RECEIVER: ", code); 

    }

}

       <receiver
            android:name=".ReceiveNetworkBroadcast"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.example.android.name" />
            </intent-filter>
        </receiver>

public void sendBroadcast(Context context, String code){
        Intent intent = new Intent();
        intent.setAction("com.example.android.name");
        intent.putExtra("CODE", code);
        intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
        context.sendBroadcast(intent);

    }

1 个答案:

答案 0 :(得分:1)

尝试在Intent中获取bundle个额外内容,如下所示:

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub
    Bundle extras = intent.getExtras();
     if (extras != null) {
      if(extras.containsKey("CODE")){
       Object value=extras.get("CODE");
       System.out.println(value);
      }
     }

}

希望它现在可以运作。