package com.example.administrator.test.Fragment.Broadcast;
import android.content.Intent;
import android.content.IntentFilter;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import com.example.administrator.test.R;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
}
public void bt1_OnClick(View v)
{
//一般广播
Intent intent=new Intent( "Broadcast.MainActivity1" );
intent.putExtra( "name","广播发送测试" );
sendBroadcast( intent );
Toast.makeText( this, "一般广播已经发出去了", Toast.LENGTH_SHORT ).show();
}
//动态注册
MyReceiver mr;
public void bt2_OnClick(View v)
{
mr=new MyReceiver();
IntentFilter interFilter=new IntentFilter( "Broadcast.MainActivity1" );
registerReceiver( mr,interFilter );
}
//反注册
@Override
protected void onDestroy() {
if (mr!=null)
{
unregisterReceiver( mr );
}
super.onDestroy();
}
}
package com.example.administrator.test.Fragment.Broadcast;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver {
public MyReceiver() {
Log.e( "TAG","MyReceiver被实例化" );
}
@Override
public void onReceive(Context context, Intent intent) {
String str=intent.getStringExtra( "name" );
Toast.makeText( context, "收到的广播="+str, Toast.LENGTH_SHORT ).show();
}
}
<activity android:name=".Fragment.Broadcast.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<receiver
android:name=".Fragment.Broadcast.MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="Broadcast.MainActivity"/>
</intent-filter>
</receiver>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="发送一般广播"
android:onClick="bt1_OnClick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="动态注册广播接收器"
android:onClick="bt2_OnClick"/>
</LinearLayout>
![](https://images2015.cnblogs.com/blog/885594/201608/885594-20160802162342825-1635966551.png)