应用在使用过程中偶尔会出现对触摸操作反应特别慢的情况,响应时间可能高达几十秒,并非由anr错误引起,因为长时等待后仍然能响应之前的操作。另外也有注意到,出现这样的情况时,kill掉应用进程,重新启动应用也会花费较长时间。这个问题也不总是会发生,有没有朋友知道这是什么原因引起的,或者应该从哪些方面去分析这个问题呢?
论坛积分只够悬赏50了恳请各位熟悉android开发的朋友能帮助尽力提供分析和解决问题的思路,谢谢大家!

解决方案 »

  1.   

    高达十几秒你应用还没死?在主线程还是子线程等待这么久啊?建议同时间看下CPU的占用率,一般是CPU分片不过来,线程阻塞了
      

  2.   

    手机ram太低可能会有这个问题
      

  3.   

    App没问题,应该是手机的问题
      

  4.   


    您好,我通过Android Profiler分析CPU占用情况后发现,我的应用中有一处循环,每一次循环都会调用一个时间转化操作,这个时间转化操作用的是java.text.SimpleDateFormat类,当数据量大的时候,性能分析工具显示时间基本上都花费在这个时间转化操作上,所以目前的优化方向是做了分页加载,也就是减少短时间内时间转化操作的调用次数。但是我感觉根本原因似乎是java提供的SimpleDataFormat这个类性能比较低,暂时在网上也没找到关于这个类性能方面的太多信息,不知道您对此是否有所了解?
      

  5.   

    你如果觉得是SimpleDataFormat的问题,你可以试下如果注释掉会不会还是这样;或者用Calendar代替再对比看看
    至于你说的SimpleDataFormat性能问题,我使用过程中是没碰到,也没见官网提到过;方便的话贴下你这个循环中是怎么使用的导致耗时
      

  6.   

    Leakcanary和Blockcanary了解一下,还有像这种耗时的操作最好放到子线程中执行,然后异步地通知主线程