Использование OTTO, метод только подписывается, если я назову его напрямую

StackOverflow https://stackoverflow.com//questions/25004921

  •  20-12-2019
  •  | 
  •  

Вопрос

У меня есть проблема, когда один из моих подписанных методов не вызывается посту правильного типа события, если только подписался методом (называется) в другом месте.

Вот какая-то соответствующая информация о коде:

    .
  • Метод одного из моих классов аннотируется с @subscribe.
  • , наступая через код с отладчиком, я обнаруживаю, что в моем конкретном обстоятельстве у класса не имеет методов, аннотированных с @subscribe.
  • Если я не вызываю метода непосредственно в какой-то момент времени (не имеет значения, когда или даже если он действительно вызывается во время выполнения) в другом месте, мой POST не работает.
  • IDE (студия Android) уведомляет меня, что «метод никогда не используется»

Я могу, безусловно, позвонить в блок кода, который я уверен, что никогда не пожарит, но это, очевидно, ужасная практика и поражает целью этого сообщения / подписки Paradigm.

Или я могу сделать метод статическим, но я бы предпочел не потому, что я использую переменные элемента внутри этого.

Любые решения, почему это происходит, даже если пример OTTO использует аналогичный шаблон

Это было полезно?

Решение

Оказывается, это была проблема прогада.Исправлено его, добавив следующие строки:

-keepclassmembers class ** {
    @com.squareup.otto.Subscribe public *;
    @com.squareup.otto.Produce public *;
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top