Использование OTTO, метод только подписывается, если я назову его напрямую
Вопрос
У меня есть проблема, когда один из моих подписанных методов не вызывается посту правильного типа события, если только подписался методом (называется) в другом месте.
Вот какая-то соответствующая информация о коде:
- .
- Метод одного из моих классов аннотируется с @subscribe.
- , наступая через код с отладчиком, я обнаруживаю, что в моем конкретном обстоятельстве у класса не имеет методов, аннотированных с @subscribe.
- Если я не вызываю метода непосредственно в какой-то момент времени (не имеет значения, когда или даже если он действительно вызывается во время выполнения) в другом месте, мой POST не работает.
- IDE (студия Android) уведомляет меня, что «метод никогда не используется»
Я могу, безусловно, позвонить в блок кода, который я уверен, что никогда не пожарит, но это, очевидно, ужасная практика и поражает целью этого сообщения / подписки Paradigm.
Или я могу сделать метод статическим, но я бы предпочел не потому, что я использую переменные элемента внутри этого.
Любые решения, почему это происходит, даже если пример OTTO использует аналогичный шаблон
Решение
Оказывается, это была проблема прогада.Исправлено его, добавив следующие строки:
-keepclassmembers class ** {
@com.squareup.otto.Subscribe public *;
@com.squareup.otto.Produce public *;
}
. Не связан с StackOverflow