public class bootCompleteReceiver extends BroadcastReceiver{
private External external;
public bootCompleteReceiver(External _external){
external = _external;
}
@Override
public void onReceive(Context context, Intent intent) {
external.doStuff();
}
}
使用此代码启动完成不会注册,但如果你卸载构造函数它将工作正常。 (注意:不用说,接收器已在清单中正确注册)。
任何人都可以验证我担心静态接收器不能有构造函数或解释这种代码尝试的方式吗?
答案 0 :(得分:1)
由于构造函数具有参数,因此无法在引导时调用该代码。无法填充该参数,因此系统永远无法调用该参数。就系统而言,您的“外部”类是一个未知实体。
添加无参数构造函数或删除当前构造函数,以便系统可以访问它。