I want to make an activity that allows orientation changes on some condition, but not otherwise. More exactly I want to prevent restarting the activity when a background thread is busy.
I have put the configChanges
attribute on the activity manifest, and onConfigurationChanged
is called when the orientation changes. However I want to allow the app to change the orientation when allowed.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (orientationChangeAllowed) {
// how do I restart this activity?
} else {
// don't do anything
}
}
if it's allowed call setRequestedOrientation()
, when it's not allowed, do nothing.
As a tip: You can use onRetainNonConfigurationInstance()
and getLastNonConfigurationInstance()
and return (an object containing) the AsyncThread
. This way the Activity
will change orientation when the user wants to. Take note though: You shouldn't leak a reference to a Context
(may it be a reference to your Activity
or a Drawable
, ...).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With