虽然我知道已经有一些答案,但我不太了解它们,因为我只是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>
但它不起作用。 logcat说:
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 */
}
我知道这个问题可能听起来很简单,但我真的不知道如何解决这个错误。我读过this(我认为它有点无效 - 我没有空的构造函数)和一些其他的在线教程,但我仍然无法得到它。任何帮助将不胜感激:)
答案 0 :(得分:9)
变化:
public class NetworkChangeReceiver extends BroadcastReceiver
为:
public static class NetworkChangeReceiver extends BroadcastReceiver
或者,将NetworkChangeReceiver
移动到自己的Java文件中作为public
类。