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

許可されている場合は call setRequestedOrientation()、許可されていない場合は何もしません。

ヒント: onRetainNonConfigurationInstance()andを使用してgetLastNonConfigurationInstance()、(を含むオブジェクト) を返すことができますAsyncThread。このようActivityにして、ユーザーが望むときに向きが変わります。ただし、注意してください: a への参照をリークしてはいけませんContext(それがあなたのActivityまたは aへの参照である可能性がありますDrawable...)。

于 2010-03-19T10:49:44.980 に答える