android studio 自定义广播
这次记录的主要是我对广播的一些理解
自定义广播的静态注册与使用
一.静态广播的注册
到AndroidMainfest.xml文件当中进行注册(注意必须得要将receiver写在application的里面)
Android:name=“继承broadcastReceiver的类的名称”
intent-filter是一个过滤器(用来筛选出你所需要找到的广播)
action android:name则是自定义广播的名称
第一步对在androidmainfest.xml里广播进行注册
第二步在mainactivity里通过sendBroadCast发送广播
第三步骤建立一个继承BroadCastReceiver的类来接收该广播
AndroidMainfest.xml
<receiver android:name=".MyGuangBo">
<intent-filter>
<action android:name="nanchang" />
</intent-filter>
</receiver>
MainActivity.java
注意这里是开始写发送广播的程序(定义了广播名称,定义了通过广播发送的内容)
值得注意的是android8.0以上的版本静态注册会出现无法使用的情况,所以我这有两种解决办法;
第一种:
intent.setComponent(new ComponentName(getPackageName(),"广播的类路径名"));
第二种:
intent.setComponent(new ComponentName("广播的类的报名","广播的类路径名"));
以上两种都需添加在intent声明之后
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.bt1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setAction("nanchang");
intent.putExtra("西瓜","4.5");
将4.5通过西瓜来传送数据给广播
intent.setComponent(new ComponentName(getPackageName(),&#