繁体   English   中英

为什么这个简单的广播接收器不起作用?

[英]Why isn't this simple broadcast receiver working?

我有两个应用程序,每个应用程序都有一个无障碍服务。 一个应用程序的无障碍服务发送广播,另一个应用程序的无障碍服务接收它。

这是发送广播的服务:

    Intent intent = new Intent();
    intent.setAction("com.corps.mypackage");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //this is needed if broadcast not being sent from activity
    sendBroadcast(intent);

这是接收广播的服务:

    IntentFilter intentFilter = new IntentFilter("com.corps.mypackage");
    BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            //Do some things
        }
    };
    registerReceiver(receiver, intentFilter);

未接收到广播。 可能是什么原因?

根据Android 文档

只要注册上下文有效,上下文注册的接收者就会接收广播。 例如,如果您在 Activity 上下文中注册,只要该 Activity 未被销毁,您就会收到广播。 如果您在应用程序上下文中注册,只要应用程序正在运行,您就会收到广播。

您接收应用的上下文可能无效。 考虑改用清单声明的接收器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM