4

虽然我知道已经有一些答案,但我不太了解它们,因为我只是 Android 编程的初学者。我尝试使用以下代码实例化我的接收器:

<receiver
    android:name="com.example.android.exampleapp.MainActivity$NetworkChangeReceiver"
    android:enabled="true"
    android:label="NetworkChangeReceiver">
    <intent-filter>
        <action android:name="android.net.wifi.STATE_CHANGE" />
    </intent-filter>
</receiver>

但它没有用。日志猫说:

java.lang.RuntimeException:
Unable to instantiate receiver com.example.android.exampleapp.MainActivity$NetworkChangeReceiver:
    java.lang.InstantiationException:
        class com.example.android.exampleapp.MainActivity$NetworkChangeReceiver has no zero argument constructor

我在MainActivity.java中的部分代码如下所示:

public class NetworkChangeReceiver extends BroadcastReceiver {
    /* All my code that reacts when WiFi state changes are here */
}

我知道这个问题听起来很简单,但我真的不知道如何解决这个错误。我已经阅读了这个(我认为这有点无效 - 我没有空的构造函数)和一堆其他在线教程,但我仍然无法得到它。任何帮助,将不胜感激 :)

4

1 回答 1

10

改变:

public class NetworkChangeReceiver extends BroadcastReceiver

至:

public static class NetworkChangeReceiver extends BroadcastReceiver

或者,在它自己的 Java 文件中NetworkChangeReceiver变成一个类。public

于 2016-02-04T13:54:54.040 回答