public class bootCompleteReceiver extends BroadcastReceiver{
private External external;
public bootCompleteReceiver(External _external){
external = _external;
}
@Override
public void onReceive(Context context, Intent intent) {
external.doStuff();
}
}
使用此代码启动完成不会注册,但是如果您删除构造器,它将正常工作。 (注意:不用说,接收者已在清单中正确注册)。
谁能证明我担心静态接收器无法拥有构造函数,也无法解释执行此代码试图执行的操作的方式吗?
最佳答案
由于构造函数具有参数,因此引导时无法调用该代码。无法填充该参数,因此系统永远不会调用它。就系统而言,您的“外部”类是未知实体。
添加无参数构造函数或删除当前构造函数,以便系统可以访问它。
关于android - 是否可以覆盖启动完成构造函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10013027/