Activity Class
-
Upload
luis-santos -
Category
Documents
-
view
10 -
download
0
description
Transcript of Activity Class
![Page 1: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/1.jpg)
Romain Chiappinelli
![Page 2: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/2.jpg)
![Page 3: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/3.jpg)
![Page 4: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/4.jpg)
The activity class The task backstack The activity lifecycle Starting activities Handling configuration changes
![Page 5: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/5.jpg)
Provides a visual interface for user interaction
![Page 6: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/6.jpg)
Each activity typically supports one focused thing a user can do, such as
Viewing an email message Showing a login screen
![Page 7: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/7.jpg)
Applications often comprise several activities
![Page 8: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/8.jpg)
Android supports navigation in several ways: Tasks The task backstack Suspending & resuming activities
![Page 9: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/9.jpg)
A Task is a set of related Activities These related activities don’t have to be part of the same application Most tasks start at the home screen
See: http://developer.android.com/guide/topics/ fundamentals/tasks-and-back-stack.html
![Page 10: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/10.jpg)
When an Activity is launched, it goes on top of the backstack When the Activity is destroyed, it is popped off the backstack
![Page 11: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/11.jpg)
Activity 3 Activity 2 Activity 1
Activity 1 Activity 2 Activity 1
![Page 12: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/12.jpg)
Activities are created, suspended, resumed & destroyed as necessary when an application executes
![Page 13: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/13.jpg)
Some of these actions depend on user behavior Some depend on Android
e.g., Android can kill activities when it needs their resources
![Page 14: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/14.jpg)
Resumed/Running - visible, user interacting Paused - visible, user not interacting, can be terminated* Stopped - not visible, can be terminated
![Page 15: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/15.jpg)
Android announces activity lifecycle state changes to activity by calling specific activity methods
![Page 16: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/16.jpg)
protected void onCreate (Bundle savedInstanceState) protected void onStart() protected void onResume() protected void onPause() protected void onRestart() protected void onStop() protected void onDestroy()
![Page 17: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/17.jpg)
![Page 18: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/18.jpg)
![Page 19: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/19.jpg)
Entire Lifetime
![Page 20: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/20.jpg)
Visible
![Page 21: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/21.jpg)
Visible & in Foreground
![Page 22: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/22.jpg)
![Page 23: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/23.jpg)
![Page 24: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/24.jpg)
![Page 25: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/25.jpg)
![Page 26: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/26.jpg)
Called when Activity is created Sets up Initial state
Call super.onCreate() Set the Activity’s content view Retain references to UI views as necessary Configure views as necessary
![Page 27: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/27.jpg)
MapLocation
![Page 28: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/28.jpg)
Called if the Activity has been stopped and is about to be started again Typical actions
Special processing needed only after having been stopped
![Page 29: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/29.jpg)
Activity is about to become visible Typical actions
Start when visible-only behaviors Loading persistent application state
![Page 30: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/30.jpg)
Activity is visible and about to start interacting with user Typical actions
Start foreground-only behaviors
![Page 31: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/31.jpg)
Focus about to switch to another Activity Typical actions
Shutdown foreground-only behaviors Save persistent state
![Page 32: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/32.jpg)
Activity is no longer visible to user may be restarted later
Typical actions Cache state
Note: may not be called if Android kills your application
![Page 33: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/33.jpg)
Activity is about to be destroyed Typical actions
Release Activity resources
Note: may not be called if Android kills your application
![Page 34: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/34.jpg)
MapLocation
![Page 35: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/35.jpg)
MapLocation
![Page 36: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/36.jpg)
Create an Intent object specifying the Activity to start
![Page 37: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/37.jpg)
Pass newly created Intent to methods, such as: startActivity() startActivityForResult()
Invokes a Callback method when the called Activity finishes to return a result
![Page 38: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/38.jpg)
MapLocation
![Page 39: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/39.jpg)
Similar to MapLocation, but gets address from contacts database
![Page 40: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/40.jpg)
![Page 41: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/41.jpg)
MapLocationFromContacts
![Page 42: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/42.jpg)
Started Activity can set its result by calling Activity.setResult()
public final void setResult (int resultCode) public final void setResult (int resultCode,
Intent data)
![Page 43: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/43.jpg)
resultCode (an int) RESULT_CANCELED RESULT_OK RESULT_FIRST_USER
Custom resultCodes can be added
![Page 44: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/44.jpg)
MapLocationFromContacts
![Page 45: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/45.jpg)
MapLocationFromContacts
![Page 46: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/46.jpg)
Keyboard, orientation, locale, etc.
Device configuration can change at runtime On configuration changes, Android usually kills the current Activity & then restarts it
![Page 47: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/47.jpg)
Activity restarting should be fast If necessary you can:
Retain an Object containing important state information during a configuration change Manually handle the configuration change
![Page 48: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/48.jpg)
Hard to recompute data can be cached to speed up handling of configuration changes Override onRetainNonConfigurationInstance() to build & return configuration Object
Will be called between onStop() and onDestroy()
![Page 49: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/49.jpg)
Call getLastNonConfigurationInstance() during onCreate() to recover retained Object Note: These methods have been deprecated in favor of methods in the Fragment class (discussed in later classes)
![Page 50: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/50.jpg)
Can prevent system from restarting Activity Declare the configuration changes your Activity handles in AndroidManifest.xml file, e.g., <activity android:name=".MyActivity“� android:configChanges=�
"orientation|screensize|keyboardHidden”…>
![Page 51: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/51.jpg)
When configuration changes, Activity’ s onConfigurationChanged() method is called Passed a Configuration object specifying the new device configuration
![Page 52: Activity Class](https://reader031.fdocuments.us/reader031/viewer/2022021321/577cc0c51a28aba711910c8f/html5/thumbnails/52.jpg)
The Intent Class