“`” 分为有序广播和无序广播两类。

无序广播发送代码:

<pre><code>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);
}
}
}
</code></pre>

无序广播的监听代码:

<pre><code>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>
</code></pre>

有序广播发送:

<pre><code>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>
</code></pre>

 

有序接收:

<pre><code>public class MyReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
Log.d(""vivi"", ""我是恩恩主席的内线,我收到的指令是:""+getResultData());
}
}
</code></pre>

<pre><code> "“`

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.