JavascriptProva

mercoledì 27 luglio 2016

Correzione dell'errore dovuto alla non istanziazione dell'interfaccia listener da parte di Form.

Ed ecco che mi si ripresenta l'errore quando torno dal Form al Service.
Credo di aver capito, con gli impazzimenti di ieri, che l'errore sia dovuto al fatto che soltanto il Main istanzia la variabile che ospita l'interfaccia nel Service.
Riprovo a eseguire...

Ecco: quando viene terminato Main, nel momento in cui ritorno a StartTime nel TimerService, ottengo un messaggio di errore con questo LogCat:
07-27 10:25:51.360: E/AndroidRuntime(31345): java.lang.NullPointerException
07-27 10:25:51.360: E/AndroidRuntime(31345):  at com.example.ffd.TimerService.StartTime(TimerService.java:54)
Ed ecco che il NullPointerException credo sia dovuto al fatto che non ho chiamato il setter da Form, per cui:
  1. Quando termino Main, TimerService termina;
  2. L'alarm mi evoca Form al momento stabilito, ma stavolta non viene evocato nessun setter che istanzi la variabile interfaccia;
  3. Quando deve essere innescato l'evento della variabile interfaccia di Service, questo non esiste.
Pongo allora la condizione di innescare l'evento soltanto se questo esiste, in StartTime e in StopTime:

TimerService:
if(mAlarmChangeListener!=null) mAlarmChangeListener.AlarmChange();
E vediamo...

Funziona egregiamente!

Nessun commento:

Posta un commento