ACTIVITY
An activity is a
single, focused thing that the user can do. Almost all activities interact with
the user, so the Activity class takes care of creating a window for you in
which you can place your UI with
setContentView(View)
.There are two methods almost all subclasses of Activity will implement:
· i. onCreate(Bundle) is where you initialize
your activity. Most importantly, here you will usually call setContentView(int) with a layout resource defining
your UI, and using findViewById(int) to retrieve the widgets
in that UI that you need to interact with programmatically.
· ii. onPause() is where you deal with
the user leaving your activity. Most importantly, any changes made by the user
should at this point be committed (usually to the ContentProvider holding the data).
Activity Lifecycle
Activities in the system are managed as an activity stack.
When a new activity is started, it is placed on the top of the stack and
becomes the running activity -- the previous activity always remains below it
in the stack, and will not come to the foreground again until the new activity
exits.
An activity has essentially four states:
·
If an activity in the foreground of the
screen (at the top of the stack), it is active or running.
·
If an activity has lost focus but is still
visible (that is, a new non-full-sized or transparent activity has focus on top
of your activity), it is paused. A
paused activity is completely alive (it maintains all state and member
information and remains attached to the window manager), but can be killed by
the system in extreme low memory situations.
·
If an activity is completely obscured by
another activity, it is stopped. It
still retains all state and member information, however, it is no longer
visible to the user so its window is hidden and it will often be killed by the
system when memory is needed elsewhere.
·
If an activity is paused or stopped, the
system can drop the activity from memory by either asking it to finish, or
simply killing its process. When it is displayed again to the user, it must be
completely restarted and restored to its previous state
Android Activity Life Cycle Diagram |
public class Activity extends ApplicationContext
{
protected void onCreate(Bundle savedInstanceState );
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onCreate(Bundle savedInstanceState );
protected void onStart();
protected void onRestart();
protected void onResume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
Method | Description | Killable? | Next | Called when the activity is first created. This is where you should do all of your normal static set up: create views, bind data to lists, etc. This method also provides you with a Bundle containing the activity's previously frozen state, if there was one. Always followed by onStart() . | No | onStart() |
---|---|---|---|---|---|
onRestart() | Called after your activity has been stopped, prior to it being started again. Always followed by onStart() | No | onStart() | ||
onStart() | Called when the activity is becoming visible to the user. Followed by onResume() if the activity comes to the foreground, or onStop() if it becomes hidden. | No | onResume() or onStop() | ||
onResume() | Called when the activity will start interacting with the user. At this point your activity is at the top of the activity stack, with user input going to it. Always followed by onPause() . | No | onPause() | ||
onPause() | Called when the system is about to start resuming a previous activity. This is typically used to commit unsaved changes to persistent data, stop animations and other things that may be consuming CPU, etc. Implementations of this method must be very quick because the next activity will not be resumed until this method returns. Followed by either onResume() if the activity returns back to the front, or onStop() if it becomes invisible to the user. | Pre-HONEYCOMB | onResume() oronStop() | ||
onStop() | Called when the activity is no longer visible to the user, because another activity has been resumed and is covering this one. This may happen either because a new activity is being started, an existing one is being brought in front of this one, or this one is being destroyed. Followed by either onRestart() if this activity is coming back to interact with the user, or onDestroy() if this activity is going away. | Yes | onRestart() oronDestroy() | ||
onDestroy() | The final call you receive before your activity is destroyed. This can happen either because the activity is finishing (someone called finish() on it, or because the system is temporarily destroying this instance of the activity to save space. You can distinguish between these two scenarios with the isFinishing() method. | Yes | nothing |
No comments:
Post a Comment