5

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

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

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

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

1 回答 1

7

如果允许调用setRequestedOrientation(),当不允许调用时,什么也不做。

作为提示:您可以使用onRetainNonConfigurationInstance()andgetLastNonConfigurationInstance()并返回(包含)AsyncThread. 这样,Activity当用户想要时,它就会改变方向。但请注意:您不应该泄漏对 a 的引用Context(可能是对您Activity或 a的引用Drawable,...)。

于 2010-03-19T10:49:44.980 回答