Приемник трансляции Android возвращает исключение нулевого указателя в расширенном приложении - PullRequest
0 голосов
/ 07 марта 2012

Я создал простой широковещательный приемник, единственная цель которого - когда телефон загружается для запуска метода alarmmanager, который я спрятал в расширенном файле приложения, который обрабатывает такие задачи всего приложения, как этот, это прекрасно работает, когда я вызываю его из действияно, когда я пытаюсь вызвать его из приемника вещания, он выходит из строя и не работает, я думаю, что, возможно, мне нужно каким-то образом добавить к нему контекст?

вот мой код:

package com.testapp21.second.activities;

import com.testapp21.second.OTweetApplication;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class PhoneOnReceiver extends BroadcastReceiver {
private OTweetApplication app;

@Override
public void onReceive(Context context, Intent intent) {

        app.startChecks();

}

}

edit: startChecks затем делегирует метод во вспомогательном файле с именем startCheckshelper () вот как выглядит этот блок кода:

public void startCheckshelper(){
    mAlarmSender = PendingIntent.getService(context,
              0, new Intent(context, CheckerService.class), 0);

    // We want the alarm to go off 30 seconds from now.
      long firstTime = SystemClock.elapsedRealtime();

      // Schedule the alarm!
      AlarmManager am = (AlarmManager)context.getSystemService(Service.ALARM_SERVICE);
      am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                      firstTime, 60*1000, mAlarmSender);    
}

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Вы никогда не инициализировали / не присвоили что-либо для app, поэтому оно равно нулю:

private OTweetApplication app;

И когда вы вызываете это (app.startChecks();), вы получаете исключение.

1 голос
/ 07 марта 2012

Вы всегда должны публиковать трассировку стека вместе со своим вопросом, когда спрашиваете о сбое в Android, но похоже, что app никогда не инициализируется, но вы используете его в onReceive.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...