在Activity onConfigurationChanged上有条件地重启

时间:2010-03-19 07:28:38

标签: android android-activity restart onconfigurationchanged

我想创建一个允许在某些条件下更改方向的活动,但不是。更确切地说,我想阻止后台线程繁忙时重新启动活动。

我已将configChanges属性放在活动清单上,并在方向更改时调用onConfigurationChanged。但是,我想允许应用在允许时更改方向

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (orientationChangeAllowed) {
        // how do I restart this activity?
    } else {
        // don't do anything
    }
}

1 个答案:

答案 0 :(得分:7)

如果允许调用setRequestedOrientation(),则在不允许的情况下,不执行任何操作。

作为提示:您可以使用onRetainNonConfigurationInstance()getLastNonConfigurationInstance()并返回(包含对象)AsyncThread。这样,Activity将在用户想要时改变方向。请注意:您不应泄漏对Context的引用(可能是对ActivityDrawable的引用,...)。