从LogCat,这个警告一直显示:
07-11 22:09:42.594: W/ActivityManager(292): Launch timeout has expired,giving up wake lock!07-11 22:09:42.601: W/ActivityManager(292): Activity IDle timeout for ActivityRecord{42bf6e00 com.kcoppock.sudokubeta/com.kcoppock.sudoku.SudokuBoardActivity}
一旦活动超时,UI性能恢复正常.直到那时,这是非常缓慢的.我没有代码,我知道这可能阻止主线程,我甚至已经去评论我的整个onPause()方法,看看它是否有所不同,而不是.
活动不产生任何后台线程,不执行任何网络活动,唯一的磁盘访问它是一些访问SharedPreferences.以前我能找到的问题是关于HistoryRecord的空闲超时,而不是ActivityRecord.
任何想法会造成什么?或者我可以如何确定什么是阻止UI线程,如果这是发生了什么?
编辑:好的,只是尝试注释掉除super.onCreate()和setContentVIEw()之外的所有内容 – 问题仍然存在.这不是任何其他活动,而是这一个,但是没有这个. :/
解决方法 哦geez其中一件事情在测试和错误之外很难诊断,但我已经弄清楚了.作为参考,如果任何人有这个问题,它在我的布局中归结为一个自定义视图.我已经添加了一个VIEwTreeObserver.OnGlobalLayoutListener()在布局传递之后进行一些布局修改,但是在该监听器中,我修改了布局,从而导致了另一个布局,基本上创建了一个无限循环(但是不会导致ANR).我的解决方案是这样的:private class BoardLayoutListener implements OnGlobalLayoutListener { @OverrIDe public voID onGlobalLayout() { //...do stuff here //REMOVE this Listener so that you don't repeat this forever VIEwTreeObserver obs = SudokuBoard.this.getVIEwTreeObserver(); obs.removeGlobalOnLayoutListener(this); }}
这个解决方案很讽刺,考虑到我的second highest rated answer on StackOverflow专门处理这个问题. :P
叹
总结以上是内存溢出为你收集整理的android – ActivityRecord的活动空闲超时全部内容,希望文章能够帮你解决android – ActivityRecord的活动空闲超时所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)