我刚刚将外部广播接收器类更改为我的服务,因为某些android方法无法在静态上下文中使用。现在我收到错误无法实例化活动ComponentInfo {com ...}:java.lang.NullPointerException。怎么可能修复?下面是我嵌套的BroadcastReceiver类的代码。
public class ServiceX extends Service {
private SharedPreferences settings = getSharedPreferences(PREFS, 0);
private SharedPreferences.Editor editor = settings.edit();
private static void setEnableNotification(int command) {
if (command == 1)
enableNotification = true;
else
enableNotification = false;
editor.putBoolean("enableNotification", enableNotification);
editor.commit();
}
public static class ReceiverX extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int enableNotification = intent.getIntExtra("EnableNotification", 0);
if (enableNotification == 0)
context.
setEnableNotification(0);
else if (enableNotification == 1)
setEnableNotification(1);
}
}
下面是我如何实现内部类:
public class ActivityX extends Activity{
private BroadcastReceiver receiver = security365Service.new NotifyServiceReceiver();
以下是我在网上查看一些消息后改变的主要内容:
<receiver android:name="com.milanix.services.ServiceX$ReceiverX" android:enabled="true">
</receiver>
很抱歉,如果我的问题很愚蠢。
答案 0 :(得分:2)
你不能在这里使用常规的内部类。它需要是一个static
内部类,它会让你回到原来的问题。所以,你需要以某种方式解决你的“某些android方法无法在静态上下文中使用”的问题。