создать экземпляр класса внутреннего широковещательного приемника - PullRequest
0 голосов
/ 09 февраля 2012

Я просто изменил свой класс внешнего широковещательного приемника на мой сервис, поскольку ... некоторые методы 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();

Здесь ниже мой mainfest, который я изменил после просмотра некоторых источников в Интернете:

    <receiver android:name="com.milanix.services.ServiceX$ReceiverX" android:enabled="true">
    </receiver>

Извините, если мой вопрос тупой.

1 Ответ

2 голосов
/ 09 февраля 2012

Вы не можете использовать обычный внутренний класс здесь. Это должен быть static внутренний класс, который вернет вас к исходной проблеме. Итак, вам нужно решить вашу проблему «какой-то метод Android нельзя использовать в статическом контексте», так или иначе.

...