oubowu/SlideBack

SlideBackHelper的attach该出偶尔导致crash

gndegithub opened this issue · 14 comments

SlideBackHelper的attach方法的preActivity偶尔为null
final Activity[] preActivity = {helper.getPreActivity()};
final View[] preContentView = {getContentView(preActivity[0])};

导致该方法报错crash
public static ViewGroup getDecorView(Activity activity) {
return (ViewGroup) activity.getWindow().getDecorView();
}

推测app在后台是很久没打开,上级页面被回收。这应该怎么处理??望解答

大哥被你这个bug坑苦了,一天后台一千多个崩溃日志

实验性质的东西。。。

这个问题有没有解决办法啊,麻烦给指导一下,无奈了,快被骂哭了

把奔溃场景描述下 我复现下 然后看看如何解决吧 现在在上班中

我这边还没能复现,出错代码在上面了helper.getPreActivity()返回的是null。应该是activity管理栈出的问题,获取上级页面的时候是null

这是错误日志
1Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window android.app.Activity.getWindow()' on a null object reference
2 at com.okbuy.android.ui.component.slideback.SlideBackHelper.getDecorView(SlideBackHelper.java:22)
3 at com.okbuy.android.ui.component.slideback.SlideBackHelper.getContentView(SlideBackHelper.java:30)
4 at com.okbuy.android.ui.component.slideback.SlideBackHelper.attach(SlideBackHelper.java:54)
5 at com.okbuy.android.ui.product.ProductDetailActivity.slideBack(ProductDetailActivity.java:470)

`
public static SlideBackLayout attach(@nonnull final Activity curActivity, @nonnull final ActivityHelper helper, @nullable final SlideConfig config, @nullable final OnSlideListener listener) {

    if (helper.getPreActivity()==null){
        // 内存不足应用被杀的话,直接返回一个空实现的SlideBackLayout,这时候滑动功能就失效了
        return new SlideBackLayout(curActivity);
    }

`

只能这样处理了,内存不足被杀的话,直接返回空实现待SlideBackLayout,没有将其添加到decorView,这个时候在内存回收重新创建当前activity的时候滑动返回功能就失效了

1,这样添加,不知为何会影响下面代码布局,控件的实例化。
NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

2,现在不太确定是不是内存不足的问题,我看听云日志,内存使用情况。会不会是activity栈管理的问题?
能加一下qq吗,我的813196526,非常紧急~

你看下我提交的代码 应该你没有跟我那样处理好

非常感谢,这样目前没问题了。还有现在不太确定是不是内存不足的问题,我看听云日志,内存使用情况。会不会是activity栈管理的问题?

不清楚 你那个bug 我重现了下 内存不足被杀会发生 其他情况不得知

滑动方案最稳定的还是透明主题那种形式的库吧 这个作者写的很优秀
你可以看下 https://github.com/bingoogolapple/BGASwipeBackLayout-Android

谢了,我已经入坑太深了,项目很多地方改动比较多,在替换方案就很麻烦了。