<p style="margin: 10px auto;">第一种在JAVA代码中注册接收端:</p>
</pre><pre name="code" class="html">
package com.zzw.broadcast;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
final String action = "com.zzw";
BroadcastReceiver mBroadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
// 点击按钮发送广播
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 发送广播
Intent intent = new Intent();
intent.setAction(action);
intent.putExtra("name", "zzw");
MainActivity.this.sendBroadcast(intent);
Log.e("发送广播的状态-----","发送成功");
}
});
}
// 注册接收端
private void init() {
mBroadcastReceiver = new TestBroadcastReceiver();
IntentFilter filter = new IntentFilter(action);// 过滤
registerReceiver(mBroadcastReceiver, filter);
}
private class TestBroadcastReceiver extends BroadcastReceiver {
// 接收广播
@Override
public void onReceive(Context context, Intent intent) {
Log.e("接受广播的状态-----", "收到广播");
Log.e("收到的action-----", intent.getAction());
Log.e("收到的name-------", intent.getExtras().getString("name"));
}
}
// 关闭广播
@Override
protected void onDestroy() {
if (mBroadcastReceiver != null) {
unregisterReceiver(mBroadcastReceiver);
}
super.onDestroy();
}
}
第二种在AndroidManifest中注册接收端:
发送的代码:
package com.zzw.broadcast2;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends Activity {
String action = "com.zzw";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(action);
intent.putExtra("name", "zzw");
MainActivity.this.sendBroadcast(intent);
Log.e("发送的状态-----", "发送成功");
}
});
}
}
接收的代码:
package com.zzw.broadcast2;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class TestReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("接收的状态-----", "接受成功");
Log.e("接受到的action---", intent.getAction());
Log.e("接受到的name-----", intent.getExtras().getString("name"));
}
}
AndroidManifest中注册接收端代码:在application中,与activity同级
<receiver android:name="com.zzw.broadcast2.TestReceiver" >
<!-- 过滤器 -->
<intent-filter>
<action android:name="com.zzw" />
</intent-filter>
</receiver>