Issue
I learning Android about 6 month, and all this time i described Lifecycle methods like some kind of callback, which "trigerred" when OS change state or configuration.
Questions:
1) For example, User rotate the screen. As i think, Android invoce some interface and Activity runing it's code when callback come. I'm not sure about it, because i got throw documentation(Activity/Window/...classes) and i did't find this interface or smth like it. What's really happen when user rotate the screen?
2) For example, user push the button on his mobile app and create new Activity. Lifecycle methods will be called, but OS state or configuration was't change. It means, my definition of lifecycle methods is wrong. How to describe it correctly? Help me to understand what's wrong with my first definition.
I know about this link:
https://developer.android.com/guide/components/activities/activity-lifecycle
And there is a line:
The Activity class provides a number of callbacks that allow the activity to know that a state has changed...
But inside Activity class i see, for example:
@MainThread
@CallSuper
protected void onCreate(@Nullable Bundle savedInstanceState) {
and i have not see override
word, so how Activity can implement it?
There is @CallSuper
annotation, but parent classes(include Context) have no code connected with lifecycle. So it this real callbacks?
Solution
Not sure that I understand your question, because it is vague, but let me try to address the 2 specific examples:
1) For example, User rotate the screen. As i think, Android invoce some interface and Activity runing it's code when callback come. I'm not sure about it, because i got throw documentation(Activity/Window/...classes) and i did't find this interface or smth like it. What's really happen when user rotate the screen?
In the usual case, when the user rotates the screen, a "configuration change" occurs. Android responds to this by killing off the currently active Activity
. Android calls the "lifecycle methods": onPause(), onStop()
and onDestroy()
on the current Activity
. Android then creates a new instance of the Activity
and calls the "lifecycle methods": onCreate(), onStart()
and onResume
on that instance.
In case the application has declared that it wants to handle the configuration change itself (by specfying android:configChanges="..."
for the Activity
in the manifest), Android does not kill the Activity
when the screen is rotated. Instead, Android calls the "lifecycle method": onConfigurationChanged()
on the current Activity
.
2) For example, user push the button on his mobile app and create new Activity. Lifecycle methods will be called, but OS state or configuration was't change. It means, my definition of lifecycle methods is wrong. How to describe it correctly? Help me to understand what's wrong with my first definition.
The "lifecycle methods" do not only refer to changes int he OS state or configuration. "Lifecycle methods" are also called to inform your Activity
about changes in the state of the Activity
itself. onCreate()
is called to inform the Activity
that a new instance of the Activity
has just been created by Android and that the Activity
should initialize itself. onResume()
is called to inform the Activity
that it is now the current Activity
that the user will see (topmost Activity
in its task and visible on screen). onPause()
is called to inform the Activity
that another Activity
is going to become the current Activity
. onConfigurationChanged()
is called to inform the Activity
that a configuration change has occured on the device (this can be one of many differnt things including: locale, screen size, screen density, screen orientation, keyboard presence, etc. There are many other "lifecycle methods" that are called by Android at specific times during the lifetime of an Activity
.
Answered By - David Wasser
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.