bingoogolapple / BGABanner-Android

引导界面滑动导航 + 大于等于1页时无限轮播 + 各种切换动画轮播效果
4.17k stars 782 forks source link

开启无限轮播后,同时手指滑动,anr #137

Closed jkdevKK closed 5 years ago

jkdevKK commented 6 years ago

banner放在recycleView的头里,开启无限轮播了,刷新后立即手指滑动(此时的情况就是在banner还没来得及自动切到下一张,这时候手动切换),即出现anr 望解答

zjn0505 commented 6 years ago

+1


  | group="main" sCount=1 dsCount=0 obj=0x72a59700 self=0xb8a96300
  | sysTid=32154 nice=0 cgrp=default sched=0/0 handle=0xb6f75bec
  | state=S schedstat=( 11276159111 742369288 8811 ) utm=1050 stm=77 core=3 HZ=100
  | stack=0xbe081000-0xbe083000 stackSize=8MB
  | held mutexes=
  at android.support.v4.view.ViewPager.populate(ViewPager.java:1163)
  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:662)
  at android.support.v4.view.ViewPager.setCurrentItemInternal(ViewPager.java:624)
  at java.lang.reflect.Method.invoke!(Native method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at cn.bingoogolapple.bgabanner.BGAViewPager.setBannerCurrentItemInternal(BGAViewPager.java:100)
  at cn.bingoogolapple.bgabanner.BGABanner.handleAutoPlayActionUpOrCancel(BGABanner.java:791)
  at cn.bingoogolapple.bgabanner.BGAViewPager.onTouchEvent(BGAViewPager.java:128)
  at android.view.View.dispatchTouchEvent(View.java:8515)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2399)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2092)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
  at cn.bingoogolapple.bgabanner.BGABanner.dispatchTouchEvent(BGABanner.java:624)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405)
  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106)
lyldding commented 5 years ago

+1

lyldding commented 5 years ago

分析了一下可能是切换的position值不对,导致循环耗时出现ANR,详情见https://blog.csdn.net/lylddingHFFW/article/details/89212664