PullToRefreshListView$InternalListViewSDK9 中的 IllegalStateException

2024-01-28

我在应用程序的两个活动中使用 PullToRefresh 库。我知道,这个库已被弃用,但它非常有用,它不仅可以处理来自顶部的刷新手势,还可以处理来自底部的刷新手势。但它有一个问题:应用程序很少因以下日志而崩溃:

java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(16908298, class com.handmark.pulltorefresh.library.PullToRefreshListView$InternalListViewSDK9) with Adapter(class android.widget.HeaderViewListAdapter)]
 at android.widget.ListView.layoutChildren(ListView.java:1551)
 at android.widget.AbsListView.onTouchEvent(AbsListView.java:4218)
 at android.view.View.dispatchTouchEvent(View.java:7461)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2264)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1995)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2270)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2010)
 at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2182)
 at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1512)
 at android.app.Activity.dispatchTouchEvent(Activity.java:2466)
 at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2130)
 at android.view.View.dispatchPointerEvent(View.java:7641)
 at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3682)
 at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3613)
 at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4804)
 at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4783)
 at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4875)
 at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
 at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
 at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:174)
 at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:4854)
 at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:4894)
 at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
 at android.view.Choreographer.doCallbacks(Choreographer.java:562)
 at android.view.Choreographer.doFrame(Choreographer.java:530)
 at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
 at android.os.Handler.handleCallback(Handler.java:725)
 at android.os.Handler.dispatchMessage(Handler.java:92)
 at android.os.Looper.loop(Looper.java:137)
 at android.app.ActivityThread.main(ActivityThread.java:5328)
 at java.lang.reflect.Method.invokeNative(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:511)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
 at dalvik.system.NativeStart.main(Native Method)

这种崩溃很少发生,以至于我在几个月的频繁使用中只在我的设备上看到过一次。但我在 Google Play 开发者控制台中看到了来自用户的包含此日志的崩溃报告。

据我了解,此崩溃不是发生在我的代码中,而是发生在 InternalListViewSDK9 类的 PullToRefresh 库的代码中。这是InternalListViewSDK9的代码:

@TargetApi(9)
final class InternalListViewSDK9 extends InternalListView {

    public InternalListViewSDK9(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX,
            int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {

        final boolean returnValue = super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX,
                scrollRangeY, maxOverScrollX, maxOverScrollY, isTouchEvent);

        // Does all of the hard work...
        OverscrollHelper.overScrollBy(PullToRefreshListView.this, deltaY, scrollY, isTouchEvent);

        return returnValue;
    }
}

考虑到我无法重现这个错误,如何修复它?也许有可能压制它?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PullToRefreshListView$InternalListViewSDK9 中的 IllegalStateException 的相关文章

  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • 确定序列化对象的类型

    我需要通过套接字发送消息 从用户到引擎的请求 以及从引擎到用户的响应 所以流程本质上是 serialized request Server lt network gt Client serialized response request r
  • 以编程方式应用样式资源

    我没有找到一种以编程方式做到这一点的方法 所以我在这里发布这个问题 我也没有找到与此相关的任何问题 我有一个资源样式 在 res values styles xml 中定义 我想做的是使用 java 将这种样式应用到我正在操作的 View
  • java setFullScreenWindow 在 Mac 中隐藏登录对话框

    我使用的是全屏窗口 类似于屏幕保护程序 使用这里的方法 GraphicsEnvironment getLocalGraphicsEnvironment getDefaultScreenDevice setFullScreenWindow t
  • Java:SortedMap、TreeMap、可比较?如何使用?

    我有一个对象列表 需要根据其中一个字段的属性进行排序 我听说 SortedMap 和 Comparator 是实现此目的的最佳方法 我是否要与正在排序的类实现 Comparable 还是创建一个新类 如何实例化 SortedMap 并传入
  • 如何在 JPA 和 Hibernate 中将数据库生成的列值定义为只读字段?

    使用 MariaDB 10 2 可以定义日期时间的默认值 例如创建和最后修改 我应该如何将此列作为只读字段访问 因为这个值应该只在数据库的控制之下 并且不应该从代码中修改 但我想在代码中读取这个属性 这很简单 只需设置insertable
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • 使用 Glide 库设置图像加载完成后进度条的可见性

    您好 我想要一个图像进度条 该进度条将在图像加载时显示 但当图像加载完成时 我想将其设置为消失 早些时候我为此使用了毕加索库 但我不知道如何将它与 Glide 库一起使用 我知道有一些资源就绪功能 但我不知道如何使用它 谁能帮我 毕加索图书
  • 在 Java 中创建 XML 文件的最佳方法是什么?

    我们目前使用 dom4j 来创建 XML 文件 不过 我猜现在有更好的东西了 如果我们使用的是 Java 1 6 或更高版本 那么在编写 XML 文件时最好使用什么类 运行速度最快 使用简单 我不需要构建一个 DOM 然后编写整个 DOM
  • 如何在不反编译的情况下更改已编译的.class文件?

    我想更改 class 文件方法 我安装 JD Eclipse Decompiler 并打开 class 文件 我添加了一些代码并保存 class 文件 但是 class 文件没有改变 我不知道如何使用反编译器 如果可能的话 如何在不使用反编
  • 如何从intellij项目视图中隐藏不必要的文件?

    给定一个示例 gradle 项目 其项目结构如下所示 正如你所看到的 有很多东西你实际上不需要在想法中看到 但你需要它们存在 我知道下面被忽略的文件 文件夹类型Editor File Types但这些正在影响库和项目 idea 会在各处忽略
  • Java 中 JButton 的击键/热键

    最初我使用 JMenu 并建立热键以使用加速器工作 它运行得很好 现在我想在 JButton 中实现相同的行为 但我陷入困境 这是我编写的代码 请分享您的想法 以便我可以走上正确的道路 import javax swing import j
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 如何制作一个makefile只用于编译一些java文件?

    我有三个java文件 名为A java B java C java A将创建对象B B将创建对象C 但我以前从未构建过makefile 有谁可以帮我构建一个 makefile 来编译这三个 java 文件吗 我应该使用什么工具来制作 mak
  • 如何从 JavaFX 中的另一个控制器类访问 UI 元素?

    我有一个使用 NetBeans 8 编写的 JavaFX Java 8 应用程序 没有SceneBuilder 我的应用程序有一个主窗口 该窗口有自己的 FXML 文件 primary fxml 和自己的控制器类 FXMLPrimaryCo
  • firebase中按范围查询

    我有一个食品价格范围滑块 根据滑块的最小值和最大值 我想显示此范围内的食品 滑块代码 multiSlider setOnThumbValueChangeListener new MultiSlider SimpleChangeListene
  • Collections.sort(list) 和 list.sort(Comparator) 之间的区别

    有什么理由让我应该选择Collections sort list 方法而不是简单地调用list sort 内部Collections sort只是调用sort的方法List无论如何 上课 令人惊讶的是几乎每个人都告诉我使用Collectio
  • 受信任的 1.5 小程序可以执行系统命令吗?

    如果是的话 这个能力有什么限制吗 具体来说 我需要以 Mac OSX 为目标 我以前用过这个在 Windows 系统上启动东西 但从未在 Mac 上尝试过 public void launchScript String args Strin
  • 如何使用自定义 JDK 构建 Jenkins 项目?

    我有一个常规的 Jenkins 实例 运行一些多分支管道 该实例在 JDK 11 上运行 因为 Jenkins 并不真正支持更高版本 没关系 但不好的是 我的所有管道似乎也都受到 Java 11 的限制 Jenkins 仅使用它自己也使用的
  • 我可以通过在 Android Activity 中声明适当的成员“静态”来提高效率吗

    如果一个 Activity 在实践中是单例 我认为我可以通过声明适当的成员 静态 来获得一些效率 且风险为零 是的 The Android 文档说 http developer android com guide topics fundam

随机推荐