gpt4 book ai didi

java - BroadcastReceiver 在 android list 中没有默认构造函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:59 24 4
gpt4 key购买 nike

我正在尝试注册一个扩展 BroadcastReceiver 的类作为 Android list 中的接收器。我注册它们没有问题,但问题是因为该类没有空构造函数。

  1. 我不明白为什么 BroadcastReceiver 需要一个空的构造函数,有没有办法解决这个问题?
  2. 我可以在我的类中创建一个公共(public)的空构造函数,但问题是,这个类也是一个单例类。这意味着我不希望此类使用空构造函数!这里有一个明显的冲突,我可以只写一个空的构造函数并相信用户永远不会通过编写文档来使用它,但必须有一个更简单的方法吗?

TLDR;如何实现一个作为广播接收器的类(需要空构造函数才能在 android list 中注册它)但同时又是一个单例类或拒绝用户访问默认构造函数的类。 (我试过使默认构造函数 protected ,但这并没有解决问题,因为 list 无法注册接收器)

最佳答案

is there a way around this?

没有。 Android 不知道如何调用任何其他构造函数,或者传递给该构造函数的值。

this class is also a singleton class

那是不可能的。 Android 将为其接收到的每个广播创建一个在 list 中注册的 BroadcastReceiver 的新实例。

but there has to be a simpler method right?

是的:不要让 BroadcastReceiver 成为单例。使一些其他类成为BroadcastReceiver 使用的单例。

关于java - BroadcastReceiver 在 android list 中没有默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40472250/

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