ButterKnife 有时会在 Android 8.x 上停止工作

ButterKnife sometimes stops working on Android 8.x

我用ButterKnife已经2年了,但是最近我在Android 8上遇到了问题。当我在Activity A时,我开始Activity B并完成Activity B,然后开始Activity B,然后周而复始地完成Activity B。有时所有活动中的@OnClick 不再起作用。这真的很奇怪,因为它只发生在某些设备上,例如诺基亚 X6 (Android 8.1)、小米 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
    }
}

有人能帮忙吗?提前致谢!

我找到原因了: 在 Activity B 中,我有 mHandler.postDelayed(mRunnable, 2000),如果我快速完成 Activity B(< 2000 毫秒),这将导致 ButterKnife @OnClick 停止工作。

所以我输入 mHandler.removeCallbacksAndMessages(null) 一切正常!

您可以在此处查看问题:Issue