当前位置: 首页 > 知识库问答 >
问题:

LocalBroadcastManager未收到消息

金骞尧
2023-03-14

我的LocalBroadcastManager回调函数不接收消息。有人能告诉我为什么吗?

我尝试在我的三星Galaxy S3 mini(4.1.2-Jelly Bean,API 16)上实现这一点。

SenderClass:

public static final String BROADCAST = "com.android.SOME_BROADCAST";
private Context context;

public SenderClass(Context context) {
        this.context = context;
        //...

    Intent intent = new Intent(BROADCAST);
    //intent.putExtra(EXTRA_SOMEEXTRA, "some extra");
    LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
    //just to keep it simple i do it here
}

主要活动

private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d(TAG, "onReceive"); //this is never called!

        }
    };

@Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG, "onResume()");

        LocalBroadcastManager.getInstance(this).registerReceiver(
                broadcastReceiver,
                new IntentFilter(SenderClass.BROADCAST)
        );
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d(TAG, "onPause()");

        LocalBroadcastManager.getInstance(this).unregisterReceiver(broadcastReceiver);
    }

编辑:这是清单

显示

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android....">

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".Activities.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <service
            android:name=".Services.MyService"
            android:enabled="true"
            android:exported="false"></service>
    </application>

</manifest>

共有1个答案

李敏学
2023-03-14

尝试此步骤:-在onCreate中注册您的广播,并在onDestroy of active中取消注册广播。

谢谢,这可能对你有帮助。

 类似资料:
  • 我正在使用以下在docker上运行kafka、zookeeper和kafdrop: 我有一个具有以下配置的Spring Boot Producer应用程序-: 在我的中,我有以下内容: 这是一个单独的应用程序,我在我的服务中这样称呼Kafka制作人: 在一个完全不同的spring引导应用程序中,我有一个像这样的使用者: 我可以看到消费者正在连接到代理,但是有消息的日志。下面是我能看到的完整日志:

  • 我正在为云消息使用xamarin iOS FirebasePushNotificationPlugin,但我正在接收令牌,但我无法接收任何通知。< code > crossfirebase push notification。current . OnNotificationReceived 甚至不触发。 以下是我的appDelegate的外观。 以下是我收到通知的方式: 我已验证 .启用后台模式-

  • 我使用PHP在我的服务器中通过以下功能向FCM发送通知: 响应是这样的。在文件中,https://firebase.google.com/docs/cloud-messaging/http-server-ref 多播id、成功、失败参数在响应中是必需的,但是。 这是什么原因?

  • 我正在尝试设置一个基本的Java消费者来接收来自Kafka主题的消息。我在-https://cwiki.apache.org/confluence/display/KAFKA/Consumer组示例-并具有以下代码: 和 Kafka在有问题的EC2主机上运行,我可以使用kafka-console-producer.sh和kafka-console-consumer.sh工具发送和接收关于主题“测试

  • 我的Spring/java消费者无法访问生产者生成的消息。但是,当我从控制台/终端运行消费者时,它能够接收Spring/java生产者生成的消息。 消费者配置: 监听器配置: Kafka听众: 消费者应用: 测试用例1:通过 我启动了我的Spring/ java生产者并从控制台运行消费者。当我生成消息表单创建者时,我的控制台使用者能够访问该消息。 测试用例2:失败:我启动了spring/java消

  • 通知处理程序 邮递https://fcm.googleapis.com/fcm/send 当我发送通知与有效载荷上面,通知交付到系统托盘,当我点击它,我有以下三种情况: 应用程序处于后台(关闭/终止),显示“数据”并调用onLaunch方法。 问题是,如何接收或处理带有通知的“数据”也发送到系统托盘?任何帮助都将不胜感激。