Android:ANR输入调度超时

Sut*_*rth 12 performance android

我在某些手机上收到以下错误日志,如下所示:

原因:输入调度超时(等待发送非键事件,因为触摸的窗口尚未处理超过500.0ms前传递给它的某些输入事件.等待队列长度:20.等待队列头部年龄:5509.1ms.)

我正在使用Retrofit 2进行网络调用,其中我使用异步方法,使用数据库作为领域,我使用异步事务来编写内容.使用Glide进行图像加载.

在使用严格模式时,我发现我得到了共享首选项的惩罚日志.任何其他指向查看和调试问题的指针

Rat*_*der 1

任何类型的耗时过程(例如通过网络同步数据)都不应该在main thread. Android有一些默认的内置方法AsyncTask,例如IntentService等,这些方法位于worker thread. 就我个人而言,我对 Retrofit 2 不太了解。如果它可以在 上运行main thread,那么您应该在单独的线程中使用它。

  • @jitenshah 是的,我能够解决它。实际上,我正在主线程上进行数据库写入操作,这很繁重,将其转移到异步任务,它的工作方式就像一个魅力。在android中使用realm作为数据库 (4认同)
  • 根据文档 Retrofit 2 enqueue 方法以异步方式工作。 (2认同)