静态注册:
1、创建两个类,继承BroadcastReceiver并实现onReceive
public class LaoDa extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String resultData = getResultData();//获取接受到的广播信息
System.out.println(resultData+"钱很多 1");
}
}
public class LaoEr extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String resultData = getResultData();//获取接收到的广播信息
System.out.println(resultData+"钱很多 2");
}
}
2、在 清单文件AndroidManifest > application 中注册广播receiver <注意:intent-filter后的 priority属性 是设置接收到广播的优先级,值越大优先级越高,这个值的范围为 -1000至1000>
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".LaoDa"> <intent-filter android:priority="1000"> <action android:name="QiLin666" /> </intent-filter> </receiver> <receiver android:name=".LaoEr"> <intent-filter android:priority="900"> <action android:name="QiLin666"/> </intent-filter> </receiver> </application>
3、在activity中向两个广播发送数据
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("QiLin666");//设置让谁接收 sendOrderedBroadcast(intent,null,null,null,1,"发钱啦,",null);//发送广播 } }); } }
动态注册:
1、与静态注册的第一步相同
2、先动态注册广播,再发送广播
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //动态注册广播接收器 LaoDa laoDa = new LaoDa(); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("QiLin666"); registerReceiver(laoDa,intentFilter);LaoEr laoEr = new LaoEr();IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("QiLin666"); registerReceiver(laoEr,intentFilter);
Button mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setAction("QiLin666");//设置让谁接收 sendOrderedBroadcast(intent,null,null,null,1,"毛线",null);//发送广播 } }); }}
这是xml:
好了,这边是广播接收者的简单使用,希望对您有所帮助!<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送广播" /> </RelativeLayout>