1.在主活动中庸sendBroadcast(Intent intent)方法,Intent对象指定该广播类型
2.新建一个继承BroadcastReceiver的类并重写onReceived()方法,在里面或者在AndroidManifest.xml中指定能接收到的广播类型
如在代码中指定:
IntentFilter filter=new IntentFilter("org.crazyit.action.CRAZY_BROADCAST");
IncomingSMSReceiver receiver=new IncomingSMSReceiver();
registerReceiver(receiver,filter);
在AndroidManifest.xml中指定:
<receiver android:name=".MyReceiver"> <intent-filter> <!-- 指定该BroadcastReceiver所响应的Intent的Action --> <action android:name="org.crazyit.action.CRAZY_BROADCAST" /> </intent-filter>
下面为一个例子:
MainActivity.java:
package com.example.wanglunhui.broadcast; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { Button send; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获取程序界面中的按钮 send = (Button) findViewById(R.id.send); send.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 创建Intent对象 Intent intent = new Intent(); // 设置Intent的Action属性 intent.setAction("org.crazyit.action.CRAZY_BROADCAST"); intent.putExtra("msg", "简单的消息"); // 发送广播 sendBroadcast(intent); } }); } } MyReceiver.java:
package com.example.wanglunhui.broadcast; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "接收到的Intent的Action为:" + intent.getAction() + "\n消息内容是:" + intent.getStringExtra("msg") , Toast.LENGTH_LONG).show(); } }
在AndroidManifest.xml中指定能接收到的广播类型:
AndroidManifest.xml<receiver android:name=".MyReceiver"> <intent-filter> <!-- 指定该BroadcastReceiver所响应的Intent的Action --> <action android:name="org.crazyit.action.CRAZY_BROADCAST" /> </intent-filter> </receiver>