Я использую ButterKnife в течение 2 лет, но недавно у меня возникла проблема с Android 8. Когда я нахожусь в Activity A, я запускаю Activity B и заканчиваю Activity B, затем начинаю Activity B и заканчиваю Activity B снова и снова. Иногда @OnClick во всех действиях больше не работает. Это действительно странно, потому что это просто происходит на некоторых устройствах, таких как Nokia X6 (Android 8.1), Xiaomi Note 5 (Android 8.1), и его действительно трудно воспроизвести.
// This function is not called anymore
@OnClick({R.id.btn1, R.id.btn2})
public void onViewClick(View v) {
switch (v.getId()) {
// Handle clicks
}
}
Кто-нибудь может помочь? Заранее спасибо!
Я нашел причину:
В действии B у меня есть mHandler.postDelayed(mRunnable, 2000), и если я быстро завершу действие B (<2000 мс), это приведет к тому, что ButterKnife @OnClick перестанет работать.
Вот и поставил mHandler.removeCallbacksAndMessages(null) и все работает хорошо!
Вы можете проверить проблему здесь: Проблема
@Vishal В выпуске apk тоже есть эта проблема