Domanda

Ho un problema: un mio sottoscritto metodi non viene chiamato su un post del corretto tipo di evento, a meno che sottoscritto viene utilizzato il metodo (chiamato) altrove.

Ecco alcune importanti informazioni sul codice:

  • Un metodo di uno dei miei corsi è annotata con @Iscriversi.
  • Facendo un passo attraverso il codice con il debugger, trovo che sotto il mio specifico caso, la classe non ha i metodi annotati con @Iscriversi.
  • A meno che io chiamo il metodo direttamente a un certo punto nel tempo (non importa quando, o anche se in realtà viene chiamato a runtime) altrove, il mio post non funziona.
  • L'IDE (Android Studio) mi avvisa che il "metodo non viene mai usato"

Di certo posso chiamare il metodo in un blocco di codice che sono sicuro non sarà mai il fuoco, ma ovviamente questo è terribile pratica, e sconfigge lo scopo di questo post/sottoscrizione di paradigma.

O posso fare il metodo statico, ma preferisco non perché io uso le variabili membro all'interno di esso.

Eventuali soluzioni perché questo è in corso, anche se Otto esempio utilizza un modello simile

È stato utile?

Soluzione

Scoperto che era un ProGuard problema.Risolto aggiungendo le seguenti righe:

-keepclassmembers class ** {
    @com.squareup.otto.Subscribe public *;
    @com.squareup.otto.Produce public *;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top