Mobile Phone Handheld Hardware Hardware Rick Rogers John Lombardo O'Reilly Media, Inc. O'Reilly Media Android Application Development, 1st Edition1.5. Android Activity LifecycleAndroid is designed around the unique requirements of mobile
applications. In particular, Android recognizes that resources (memory and
battery, for example) are limited on most mobile devices, and provides
mechanisms to conserve those resources. The mechanisms are evident in the
Android Activity Lifecycle, which defines the states or events that an
activity goes through from the time it is created until it finishes
running. The lifecycle is shown diagrammatically in Figure 1-1. 
Your activity monitors and reacts to these events by instantiating
methods that override the Activity class methods for each event:
onCreate Called when your activity is first created. This is the
place you normally create your views, open any persistent datafiles
your activity needs to use, and in general initialize your activity.
When calling onCreate, the
Android framework is passed a Bundle object that contains any activity
state saved from when the activity ran before.
onStart Called just before your activity becomes visible on the
screen. Once onStart completes,
if your activity can become the foreground activity on the screen,
control will transfer to onResume. If the activity cannot become
the foreground activity for some reason, control transfers to the
onStop method.
onResume Called right after onStart
if your activity is the foreground activity on the
screen. At this point your activity is running and interacting with
the user. You are receiving keyboard and touch inputs, and the
screen is displaying your user interface. onResume
is also called if your activity loses the foreground to
another activity, and that activity eventually exits, popping your
activity back to the foreground. This is where your activity would
start (or resume) doing things that are needed to update the user
interface (receiving location updates or running an animation, for
example).
onPause Called when Android is just about to resume a different
activity, giving that activity the foreground. At this point your
activity will no longer have access to the screen, so you should
stop doing things that consume battery and CPU cycles unnecessarily.
If you are running an animation, no one is going to be able to see
it, so you might as well suspend it until you get the screen back.
Your activity needs to take advantage of this method to store any
state that you will need in case your activity gains the foreground
again—and it is not guaranteed that your activity will resume. If
the mobile device you are running on runs out of memory, there is no
virtual memory on disk to use for expansion, so your activity may
have to make way for a system process that needs memory. Once you
exit this method, Android may kill your activity at any time without
returning control to you.
onStop Called when your activity is no longer visible, either
because another activity has taken the foreground or because your
activity is being destroyed.
onDestroy The last chance for your activity to do any processing before
it is destroyed. Normally you'd get to this point because the
activity is done and the framework called its finish method. But as mentioned earlier,
the method might be called because Android has decided it needs the
resources your activity is consuming.
It is important to take advantage of these methods to provide the
best user experience possible. This is the first place in this book we've
discussed how programming for mobile devices is different from programming
for desktop devices, and there will be many more such places as you go
through later chapters. Your users will appreciate it if you write your
activities with the activity lifecycle in mind, and you will ultimately
benefit.
 |