Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Avoid reloading activity with asynctask on orientation change in android

How do I avoid reloading the activity with asynctask class in activity when the user changes orientation, in android? Can anybody give an example?

like image 832
mohan Avatar asked Mar 17 '11 06:03

mohan


People also ask

How do I stop android from restarting activity when changing orientations?

If you want the activity to not restart during screen orientation change, you can use the below AndroidManifest. xml. Please note the activity android:configChanges=”orientation|screenSize” attribute. This attribute makes the activity not restart when change screen orientation.

How do you prevent data from reloading and resetting when the screen is rotated?

Just add android:configChanges="orientation|screenSize" in activity tab of manifest file. So, Activity won't restart when orientation change.


2 Answers

Please turn off config changes as a last resort. Your app must work correctly when this happens. If you turn off the orientation config change because it breaks, your app will still break in other and some times more subtle way. Allowing the activity to be restarted due to an orientation config change is a very good way to easily test these important code paths of your app that are otherwise much less often exercised but still will result in failures in your users' hands.

To transfer active objects across Activity instances, use the new fragment static library which allows you to make a fragment that is retained for you across instances.

like image 113
hackbod Avatar answered Sep 18 '22 15:09

hackbod


Chirag have already correctly pointed out the solution.

I just want to add that, restart of Activity has nothing to do with the AsyncTask in it. By default, when there are any config changes,the activity is restarted UNLESS the config change is explicitly handled by the Activity. This is done by making an entry in manifest file.

Go through this link developer guide : android:configChanges

NOTE: Check the code on a device not on emulator. Because I had faced similar problem earlier. The same code didn't worked on emulator but it worked on device perfectly. So add the entry for android:configChanges in manifest and check the application on a android device instead of emulator.

And I second @hackbod. Do it only if necessary!

like image 30
Udayan Avatar answered Sep 22 '22 15:09

Udayan