总被忘了注册权限坑到小爷我。。。。决定先说注册权限的事。。。
这个程序,实现点击按钮后,向外广播这个事件,对它感兴趣的TestReceiver接收器接到广播后,执行相应操作,这里只是简单的输出两行话。
1.先说注册,Manifest.xml里注册。注册一个receiver,名为TestReceiver,接受EDIT操作。
<receiver android:name=".TestReceiver">
<intent-filter>
<action android:name="android.intent.action.EDIT" />
</intent-filter>
</receiver>
2.在包中创建一个TestReceiver.java文件,实现广播接收器的代码编写。
TestReceiver继承BroadcastReceiver类。
构造函数中输出一句TestReceiver。onReceiver函数中输出一句onReceiver。
public class TestReceiver extends BroadcastReceiver {
public TestReceiver(){
System.out.println("TestReceiver");
}
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("onReceiver");
}
}
3.按钮监听器中实现
//TestReceiver tr = new TestReceiver();
System.out.println("click");
//生成一个intent对象
Intent intent = new Intent();
System.out.println("click1");
//给intent设定ACTION_EDIT属性。这个属性要和在Manifest里设置的一样。
intent.setAction(Intent.ACTION_EDIT);
System.out.println("click2");
//发送广播
testBC21.this.sendBroadcast(intent);
System.out.println("click3");
发送广播后,TestReceiver就会接收到消息,然后执行自己的操作。onReceiver操作结束后,TestReceiver就会自动作废。如果再次接收到新的广播,就生成新的TestReceiver。

代码