إعادة التشغيل الشرطي على النشاط onConfigurationChanged
-
21-09-2019 - |
سؤال
أريد أن أجعل نشاطًا يسمح بتغييرات الاتجاه في حالة ما ، ولكن ليس خلاف ذلك. أكثر بالضبط أريد منع إعادة تشغيل النشاط عندما يكون مؤشر ترابط الخلفية مشغولاً.
لقد وضعت 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
, ...).
لا تنتمي إلى StackOverflow