1
public class bootCompleteReceiver extends BroadcastReceiver{
private External external;

public bootCompleteReceiver(External _external){
    external = _external;
}

@Override
public void onReceive(Context context, Intent intent) {
    external.doStuff();
}
}

使用此代码启动完成不会注册,但如果您删除构造函数,它将正常工作。(注意:不用说,接收者已在清单中正确注册)。

谁能证实我担心静态接收器不能有构造函数或解释做这个代码试图做什么的方法?

4

1 回答 1

1

由于构造函数有一个参数,因此在启动时没有任何东西可以调用该代码。无法填充该参数,因此系统永远无法调用它。就系统而言,您的“外部”类是未知实体。

添加无参数构造函数或删除当前构造函数,以便系统可以访问它。

于 2012-04-04T14:40:52.690 回答