Android:ANR 输入调度超时

15

我在某些手机上遇到了以下错误日志:

原因:输入调度超时(因为触摸窗口尚未完成处理特定输入事件,这些事件在500.0毫秒前已传递给它。等待队列长度:20。等待队列头部年龄:5509.1毫秒)。

我使用Retrofit 2进行网络调用,其中使用异步方法,使用Realm作为数据库,我在写入数据时使用了异步事务。同时,我使用Glide来加载图片。

使用Strict Mode后,我发现我只得到了有关Shared Preferences的惩罚日志。还有其他指针可以查看和调试问题吗?

1个回答

1
任何类型的时间消耗程序,例如通过网络进行数据同步,都不应该在“主线程”中执行。Android有一些默认内置方法,如“AsyncTask”,“IntentService”等,这些方法都在“工作线程”上运行。就个人而言,我对Retrofit 2没有很好的了解。如果它在“主线程”上运行,那么你应该在一个单独的线程中使用它。

2
根据文档,Retrofit 2的enqueue方法是异步工作的。 - Sutirth
4
@jitenshah 是的,我已经解决了它。实际上,我在主线程进行数据库写操作,这很耗时,将其移到异步任务中后,它就像魔法般奏效了。在Android中使用Realm作为数据库。 - Sutirth
对我来说,它是GMS模块。 - j10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接