http://developer.android.com/intl/de/guide/topics/fundamentals.html#actlife

"Saving activity state

When the system, rather than the user, shuts down an activity to
conserve memory, the user may expect to return to the activity and
find it in its previous state.

To capture that state before the activity is killed, you can implement
an onSaveInstanceState() method for the activity. Android calls this
method before making the activity vulnerable to being destroyed — that
is, before onPause() is called. It passes the method a Bundle object
where you can record the dynamic state of the activity as name-value
pairs. When the activity is again started, the Bundle is passed both
to onCreate() and to a method that's called after onStart(),
onRestoreInstanceState(), so that either or both of them can recreate
the captured state.

Unlike onPause() and the other methods discussed earlier,
onSaveInstanceState() and onRestoreInstanceState() are not lifecycle
methods. They are not always called. For example, Android calls
onSaveInstanceState() before the activity becomes vulnerable to being
destroyed by the system, but does not bother calling it when the
instance is actually being destroyed by a user action (such as
pressing the BACK key). In that case, the user won't expect to return
to the activity, so there's no reason to save its state.

Because onSaveInstanceState() is not always called, you should use it
only to record the transient state of the activity, not to store
persistent data. Use onPause() for that purpose instead."

http://developer.android.com/intl/de/reference/android/app/Activity.html

"Configuration Changes
If the configuration of the device (as defined by the
Resources.Configuration class) changes, then anything displaying a
user interface will need to update to match that configuration.
Because Activity is the primary mechanism for interacting with the
user, it includes special support for handling configuration changes.

Unless you specify otherwise, a configuration change (such as a change
in screen orientation, language, input devices, etc) will cause your
current activity to be destroyed, going through the normal activity
lifecycle process of onPause(), onStop(), and onDestroy() as
appropriate. If the activity had been in the foreground or visible to
the user, once onDestroy() is called in that instance then a new
instance of the activity will be created, with whatever
savedInstanceState the previous instance had generated from
onSaveInstanceState(Bundle).

This is done because any application resource, including layout files,
can change based on any configuration value. Thus the only safe way to
handle a configuration change is to re-retrieve all resources,
including layouts, drawables, and strings. Because activities must
already know how to save their state and re-create themselves from
that state, this is a convenient way to have an activity restart
itself with a new configuration.

In some special cases, you may want to bypass restarting of your
activity based on one or more types of configuration changes. This is
done with the android:configChanges attribute in its manifest. For any
types of configuration changes you say that you handle there, you will
receive a call to your current activity's
onConfigurationChanged(Configuration) method instead of being
restarted. If a configuration change involves any that you do not
handle, however, the activity will still be restarted and
onConfigurationChanged(Configuration) will not be called."

That should get you going in the right direction. There is also
onRetainNonConfigurationInstance (Activity method) but it's not what
you should rely on (can be used to optimize), but the basics are the
onSaveInstanceState and onRestoreInstanceState methods.


On May 13, 4:29 am, Alok Kulkarni <kulsu...@gmail.com> wrote:
> I am having an application showing ListItems and Dialog boxes in it..
> I want that when i change the orientation from Portrait to landscape mode, i
> need to maintain the state of the application .. I have seperate XMLs for
> landscape and portrait mode..
> What is the best way to achieve this >
> Thanks ,
> Alok.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscr...@googlegroups.com
> For more options, visit this group 
> athttp://groups.google.com/group/android-developers?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to