最简单的广播使用方式;
public class MainActivity extends AppCompatActivity {
private Demo1Recceiver receiver; //定义广播接收变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter filter=new IntentFilter("com.example.myapplication");//过滤器,限制只接收myapplication的广播
// IntentFilter filter=new IntentFilter(); //接收系统广播的模式;
//filter.addAction(getIntent().ACTION_AIRPLANE_MODE_CHANGED);//各种系统广播
Demo1Recceiver receiver = new Demo1Recceiver();
registerReceiver(receiver,filter);//注册的广播接收器
Button button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent("com.example.myapplication");//和注册广播接收器时对应;
intent.putExtra("temp","Lin");//通过广播准备发送的信息
sendBroadcast(intent);//发送广播
}
});
}
@Override
//释放注册的广播接收器;
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
}
//广播接收器类
class Demo1Recceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("onReceive:","内部的接收到:"+intent.getStringExtra("temp").toString());//广播接收到的信息;
}
}