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/

10-12 01:17