接收不到自定义的广播(未解决) 《第一行代码》

在实现《第一行代码》第5章的强制下线功能时遇到问题,动态注册的广播接收器无法接收到自定义的下线广播。已检查广播内容无误,尝试了修改intent.setComponent(null)以及不注销接收器,但问题依然存在。
摘要由CSDN通过智能技术生成

接收不到自定义的广播(未解决)

问题

我现在在实现《第一行代码》中第5章的练习——实现强制下线功能。在发送下线广播,动态注册的接收器无法收到广播。

在这里插入图片描述

源码

  • MainActivity.java

    public class MainActivity extends BaseActivity {
         
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
         
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            Button offline = (Button)findViewById(R.id.offline);
            offline.setOnClickListener(new View.OnClickListener() {
         
                @Override
                public void onClick(View view) {
         
                    Log.d("onCreate函数","已经发出广播")<
好的,下面是一个 Android Studio 中自定义广播的发送和接收代码示例: 首先是发送广播的代码: ```java Intent intent = new Intent("com.example.myapp.MY_CUSTOM_ACTION"); intent.putExtra("data", "Hello World!"); sendBroadcast(intent); ``` 在这个例子中,我们使用了 `Intent` 类来创建一个广播,将 action 设置为 `"com.example.myapp.MY_CUSTOM_ACTION"`,并且使用 `putExtra()` 方法将数据添加到广播中,最后使用 `sendBroadcast()` 方法发送广播。 接下来是接收广播的代码: ```java public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("com.example.myapp.MY_CUSTOM_ACTION")) { String data = intent.getStringExtra("data"); Toast.makeText(context, "Received: " + data, Toast.LENGTH_SHORT).show(); } } } ``` 在这个例子中,我们创建了一个继承自 `BroadcastReceiver` 的类 `MyBroadcastReceiver`,并且重写了 `onReceive()` 方法。在方法中,我们首先检查广播的 action 是否等于 `"com.example.myapp.MY_CUSTOM_ACTION"`,如果是,就从广播中获取数据,并且使用 `Toast` 显示数据。 最后,我们需要在 `AndroidManifest.xml` 文件中注册广播接收器: ```xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> <application ...> <receiver android:name=".MyBroadcastReceiver"> <intent-filter> <action android:name="com.example.myapp.MY_CUSTOM_ACTION" /> </intent-filter> </receiver> </application> </manifest> ``` 在这个例子中,我们使用 `<receiver>` 标签来注册广播接收器,其中 `android:name` 属性设置为我们的接收器类名,即 `.MyBroadcastReceiver`,并且在 `<intent-filter>` 标签中设置了我们要接收的 action 为 `"com.example.myapp.MY_CUSTOM_ACTION"`。 完成以上步骤后,就可以发送和接收自定义广播了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值