سؤال

أريد أن أجعل نشاطًا يسمح بتغييرات الاتجاه في حالة ما ، ولكن ليس خلاف ذلك. أكثر بالضبط أريد منع إعادة تشغيل النشاط عندما يكون مؤشر ترابط الخلفية مشغولاً.

لقد وضعت configChanges تنسب إلى بيان النشاط ، و onConfigurationChanged يسمى عندما يتغير الاتجاه. ومع ذلك أريد السماح للتطبيق بتغيير الاتجاه عندما يسمح.

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

    if (orientationChangeAllowed) {
        // how do I restart this activity?
    } else {
        // don't do anything
    }
}
هل كانت مفيدة؟

المحلول

إذا سمح بالاتصال setRequestedOrientation(), ، عندما لا يُسمح بذلك ، لا تفعل شيئًا.

كنصيحة: يمكنك استخدام onRetainNonConfigurationInstance() و getLastNonConfigurationInstance() وإعادة (كائن يحتوي) AsyncThread. بهذه الطريقة Activity سوف يغير الاتجاه عندما يريد المستخدم. لاحظ على الرغم من ذلك: يجب ألا تسرب إشارة إلى Context (قد يكون إشارة إلى Activity أو أ Drawable, ...).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top