分为有序广播和无序广播两类。
无序广播发送代码:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View v){ //启动界面 startActivity //发送广播 sendBroadcast Intent intent = new Intent(); intent.setAction("com.itheima.cctv.action.NEWS");intent.putExtra("data", "我是一个无须的广播"); sendBroadcast(intent); } }}
无序广播的监听代码:
public class CctvReceiver extends BroadcastReceiver { private static final String TAG = "CctvReceiver"; @Override public void onReceive(Context context, Intent intent) { String data = intent.getStringExtra("data"); Log.d(TAG, "data==="+data); }}<receiver android:name="com.itheima.cctv.CctvReceiver"> <intent-filter > <!--这里监听的广播就是上面发送广播设置的 intent.setAction("com.itheima.cctv.action.NEWS");--> <action android:name="com.itheima.cctv.action.NEWS"/> </intent-filter></receiver>
有序广播发送:
public class ShengReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d("vivi", "我是省级部门,我收到的指令是:"+getResultData()); //getResultData()是用来获取有序广播里面的数值.这里的信息是: //主席讲话:每人奖励10斤土豆 setResultData("主席讲话:每人奖励7斤土豆");//有序广播的数值,可以被修改,后面的程序在接受到这个广播,就会变成,现在我们改变的值了 //有序广播传输是可以终止的.但是最终的接受者就算在终止之后,也是可以接受到数据的 //abortBroadcast(); } } public class ShiReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d("vivi", "我是市级部门,我收到的指令是:"+getResultData()); //因为上面修改了数据,所以这里获取到的数据是:主席讲话:每人奖励7斤土豆 }}<!--有序广播的优先级别使用 android:priority=""来指定,最高是1000,最低是-1000--><receiver android:name="com.itheima.region.ShengReceiver"> <intent-filter android:priority="1000"> <action android:name="com.itheima.gov.action.POTATO"/> </intent-filter> </receiver> <receiver android:name="com.itheima.region.ShiReceiver"> <intent-filter android:priority="500"> <action android:name="com.itheima.gov.action.POTATO"/> </intent-filter> </receiver>
有序接收:
public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d("vivi", "我是恩恩主席的内线,我收到的指令是:"+getResultData()); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)