跨进程通讯之 Broadcast 篇

  • 发送广播

在应用程序中发送广播比较简单。只须要调用sendBroadcast方法便可,该方法须要一个Intent对象,经过Intent对象能够发送须要广播的数据。java

/  经过Intent类的构造方法指定广播的ID
        Intent intent = new Intent("net.blogjava.mobile.MYBROADCAST");
        //  将要广播的数据添加到Intent对象中  
        intent.putExtra("text", editText.getText().toString());
        //  发送广播  
        sendBroadcast(intent);

发送广播并不须要在AndroidManifest.xml文件中注册,但接收广播必须在AndroidManifest.xml文件中注册 receiver。android

  • 接收广播

java类ide

package net.blogjava.mobile.receiver;
... ...
public class MyReceiver extends BroadcastReceiver
{
    //  当sendbroadcast发送广播时,系统会调用onReceive方法来接收广播
    @Override
    public void onReceive(Context context, Intent intent)
{
    //  判断是否为sendbroadcast发送的广播
        if ("net.blogjava.mobile.MYBROADCAST".equals(intent.getAction()))
        {
            Bundle bundle = intent.getExtras();
            if (bundle != null)
            {
                String text = bundle.getString("text");
                Toast.makeText(context, "成功接收广播:" + text, Toast.LENGTH_LONG).show();
            }
        }
    }
}

_ 在AndroidManifest.xml文件中注册receiver_code

<!--  注册receiver 
<receiver android:name="MyReceiver">
    <intent-filter>
        <action android:name="net.blogjava.mobile.MYBROADCAST" />
    </intent-filter>
</receiver>
相关文章
相关标签/搜索