【发布时间】:2012-07-12 03:26:55
【问题描述】:
所以我有一个奇怪的问题,我不完全确定我应该提供哪些信息,但我会尽力而为 - 如果我需要添加更多信息,请告诉我。我有一个问题,当我完成我的Activity 并返回到以前的Activity(或使用新的Intent 启动它时——问题似乎集中在完成Activity)UI 性能急剧下降约六七秒,然后恢复正常。
来自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() 方法,看看它是否有任何区别,但它没有。
Activity 不产生任何后台线程,不执行任何网络活动,它唯一的磁盘访问是对SharedPreferences 的一些访问。我之前能够找到的问题是关于HistoryRecord 的空闲超时,而不是ActivityRecord。
有什么想法会导致这种情况吗?或者我如何确定是什么阻塞了 UI 线程,如果这是正在发生的事情?
EDIT:好的,刚刚尝试注释掉除了 super.onCreate() 和 setContentView() 之外的 所有内容 - 问题仍然存在。它不会发生在除此之外的任何其他活动中,但没有 NOTHING TO 这一个。 :/
【问题讨论】:
-
从技术上讲,可以使用
SharedPreferences阻止 UI 线程,但我想这可能不像网络访问或其他东西那样可能。您是否尝试过以某种方式删除它? -
@AlexLockwood 感谢您的想法。刚试过;删除了对任何 SharedPreferences 的所有引用,注释掉了我的 onPause() 和 onResume(),但没有区别。
-
kcoppock 也看到我的问题stackoverflow.com/questions/30053090/…
标签: android performance android-activity android-activityrecord