mTimerTask
является нулевым, когда вы звоните mTimer.scheduleAtFixedRate(mTimerTask,1000,5000);
в onRecieve
в вашем ConnectivityReceiver
классе.
Вам нужно поставить эту строку ПОСЛЕ
mTimerTask = new TimerTask() {
@Override
public void run() {
result();
}
};
Итак, ваш код будет выглядеть так:
mTimerTask = new TimerTask() {
@Override
public void run() {
result();
}
};
mTimer.scheduleAtFixedRate(mTimerTask,1000,5000);
Чтобы разобраться с этим самостоятельно, если вы посмотрите на свое сообщение об ошибке, то увидите (примерно на полпути вниз):
Caused by: java.lang.NullPointerException
Итак, теперь вы знаете, что вызвало вашу ошибку. Теперь смотрите вниз по строкам, пока не дойдете до созданного вами класса и метода. В этом случае его:
at com.varma.samples.conntest.MainActivity$ConnectivityReceiver.onReceive(MainActivity.java:196)
Файл класса, в котором вы находитесь, com.varma.samples.conntest.MainActivity
, класс, в котором вы находитесь, ConnectivityReveiver
, а метод, в котором вы находитесь, - onReceive
. Если это не помогает в скобках, то это java-файл и номер строки, из которой произошел ваш NullPointer.
Иногда вам может потребоваться отследить несколько строк, если вы передаете переменную через различные методы, прежде чем выдается исключение NullPointerException.