【发布时间】:2016-03-09 12:23:36
【问题描述】:
方式1:
@Override
protected void onPause() {
super.onPause();
// do something urgent
doSomething();
}
方式2:
@Override
protected void onPause() {
// do something urgent
doSomething();
super.onPause();
}
区别在于doSomething()和super.onPause()的调用顺序。当我使用 WAY1 时,如果 doSomething() 花费太多,我会得到错误:W/ActivityManager( 4347): Activity pause timeout for ActivityRecord。
如果我使用 WAY2 是否可以避免 pause timeout 错误?
我查看了 AOSP ,但是我很难理解 Activity 的调用过程。
【问题讨论】:
-
根据developer.android.com/intl/es/training/basics/…,你必须总是先调用超类方法
-
@antonio 是的。我看到了。你知道原因吗?
-
stackoverflow.com/a/9626268/1320616 和 stackoverflow.com/a/18874519/1320616 将正确地解释你需要知道的一切
标签: android android-activity android-activityrecord