I have one of my activities which I would like to prevent from rotating because I'm starting an AsyncTask, and screen rotation makes it restart.
Is there a way to tell this activity "DO NOT ROTATE the screen even if the user is shaking his phone like mad"?
Add android:screenOrientation="portrait" to the activity you want to disable landscape mode in.
Method two: Disable Auto-rotate from Display Settings Right-click the Desktop, then select Display settings. Under Display, switch Lock rotation of the display to off to lock the auto-rotation.
Add
android:screenOrientation="portrait"
or
android:screenOrientation="landscape"
to the <activity>
element/s in the manifest and you're done.
You can follow the logic below to prevent auto rotate screen while your AsyncTask
is running:
getRequestedOrientation()
.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR)
.AsyncTask
.AsyncTask
restore your previous orientation status using setRequestedOrientation(oldOrientation)
.Please note that there are several ways to access Activity
(which runs on UI thread) properties inside an AsyncTask
. You can implement your AsyncTask
as an inner class or you can use message Handler
that poke your Activiy
class.
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