实例化内部广播接收器类

时间:2012-02-09 00:12:03

标签: android broadcastreceiver nested-class

我刚刚将外部广播接收器类更改为我的服务,因为某些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>

很抱歉,如果我的问题很愚蠢。

1 个答案:

答案 0 :(得分:2)

你不能在这里使用常规的内部类。它需要是一个static内部类,它会让你回到原来的问题。所以,你需要以某种方式解决你的“某些android方法无法在静态上下文中使用”的问题。