gpt4 book ai didi

android - BroadcastReceiver peekService() 返回 null

转载 作者:太空狗 更新时间:2023-10-29 13:41:24 26 4
gpt4 key购买 nike

我正在尝试从 Service 获取 IBinder,以便在收到来自系统的通知时与该服务进行通信。从我的 onReceive() 方法我正在调用 peekService() 但我得到一个空引用。

我在这里阅读了一些答案 https://groups.google.com/forum/#!topic/android-developers/yiq_XIzFoS4来自 Dianne 和 Mark,他们推荐使用 startService 但我的服务有一个接口(interface),我认为 peekService 应该可以工作,但它没有。

我是否需要权限才能从 BroadcastReceiver 查看服务?我还需要其他东西吗?我确定该服务正在运行,但我无法从中获取 Binder 。

最佳答案

如果通信是 BroadcastReceiver -> Service... 那么您将使用 startService(),通过将数据添加到 Intent 的 Bundle 来传递数据。

我怀疑您的 BroadcastReceiver 需要向服务(或其 IBinder)提问。在这种情况下,您使用 peekService。 peekService 的问题在于,如果服务未启动且未绑定(bind),它会返回 null。

答案是确保在收到您的广播之前服务已启动并已绑定(bind)。实现方式会有所不同,具体取决于您的具体应用。

如果您正在查看的服务是您应用程序的一部分(同一个 APK),那么您不需要特殊权限。

关于android - BroadcastReceiver peekService() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5301405/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com