Главный экран моих приложений - это сканер Bluetooth, для этого я использую SwipeRefreshLayout с RecyclerView. В onRefresh () я запускаю сканирование Bluetooth, если я нахожу уникальное устройство, добавляю его в набор данных и затем вызываю notifyDataSetChanged () (Да, я знаю, что это неэффективно, но я просто использовал его, чтобы убедиться, что я не совершил ошибку,вызывая другие методы). Это все отлично работает, за исключением Samsung S5. Если я создаю и запускаю приложение, когда телефон разблокирован, или запускаю приложение, коснувшись значка, обновление начнется, но представление переработчика не обновится. 2 места, где он работает, это когда у меня заблокирован телефон, а затем собран и запущен, вид будет заполнен, когда разблокирован, и в случае, если он не обновляется, если я тяну палец по экрану (не нужнобыть внизу как освежитель) освежает. Я, конечно, получаю устройства BLE и вызываю notifyDataSetChanged (), но представление рециркулятора не вызывает getItemCount () на S5 и обновляет некоторые журналы консоли:
Другой телефон (работает нормально):
12:37:10.113 : getItemCount()
12:37:10.115 : getItemCount()
12:37:10.456 : notifyDataSetChanged()
12:37:10.495 : getItemCount()
12:37:10.500 : getItemCount()
S5 (При разблокированном или обычном запуске, затем перетаскиванием пальца)
13:00:58.722 : getItemCount()
13:00:58.722 : getItemCount()
13:00:58.722 : getItemCount()
13:00:58.832 : notifyDataSetChanged()
*DRAG FINGER*
13:01:07.332 : getItemCount()
13:01:07.332 : getItemCount()
13:01:07.332 : getItemCount()
S5 (сборка и запуск в закрытом состоянии)
12:41:59.252 : notifyDataSetChanged()
*Unlock*
12:42:05.052 : getItemCount()
12:42:05.052 : getItemCount()
12:42:05.052 : getItemCount()
Мне также сказали, что люди виделиэто происходит на других устройствах с более старым Android, а также. Я также видел, как это работает должным образом на S5. Есть идеи, почему после вызова notifyDataSetChanged () он не будет обновляться, особенно на старых устройствах Android?