Chapter 6 - Android Activity PDF
Document Details
Uploaded by BetterKnownConnemara9267
Tags
Summary
This document covers the basics of Android activity lifecycle. It details several essential functions, such as onCreate(), onStart(), onRestart(), and more. It also includes an Activity states and callbacks graph that illustrates the different states an activity can exist in. There is a soft reminder about some assessment deadlines.
Full Transcript
Android Developer Fundamentals V2 Activities Chapter 6 Activity lifecycle This work is licensed under a Creative Android AndroidDeveloper DeveloperFundamentals...
Android Developer Fundamentals V2 Activities Chapter 6 Activity lifecycle This work is licensed under a Creative Android AndroidDeveloper DeveloperFundamentals FundamentalsV2 V2 Commons Attribution 4.0 International 1 and state License. Soft reminder: Assessment Assessment 1 (10%) : Quiz1 (Done) Assessment 2 (30%) : Lab Assignments (On going) Assessment 3 (30%) : Project (Project Application 20%, Report 10%) (Face to face) - Group A- 13/01/2025 (Monday), 10.00am-12.00pm - Group B - 13/01/2025 (Monday), 2.30am-4.00pm Assessment 4 (30%) : Final Assessment (Theory + Programming) - 20/01/2025 (Week 14) Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 2 and state License. Contents Activity lifecycle Activity lifecycle callbacks Activity instance state Saving and restoring Activity state This work is licensed under a Creative Activity Lifecycle & Android Developer Fundamentals V2 Commons Attribution 4.0 International 3 Managing State License. Activity lifecycle Android Developer Fundamentals V2 4 What is the Activity Lifecycle? The set of states an Activity can be in during its lifetime, from when it is created until it is destroyed More formally: A directed graph of all the states an Activity can be in, and the callbacks associated with transitioning from each state to the next one Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 5 and state License. What is the Activity Lifecycle? Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 6 and state License. Activity states and app visibility Created (not visible yet) Started (visible) Resume (visible) Paused(partially invisible) Stopped (hidden) Destroyed (gone from memory) State changes are triggered by user action, configuration changes such as device rotation, or system action Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 7 and state License. Activity lifecycle callbacks Android Developer Fundamentals V2 8 Callbacks and when they are called onCreate(Bundle savedInstanceState)—static initialization onStart()—when Activity (screen) is becoming visible onRestart()—called if Activity was stopped (calls onStart()) onResume()—start to interact with user onPause()—about to resume PREVIOUS Activity onStop()—no longer visible, but still exists and all state info preserved onDestroy()—final call before Android system destroys Activity Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 9 and state License. Activity states and callbacks graph Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 10 and state License. View more: https://www.youtube.com/watch?v=SJw3Nu_h8kk Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 11 and state License. onCreate() –> Created Called when the Activity is first created, for example when user taps launcher icon Does all static setup: create views, bind data to lists,... Only called once during an activity's lifetime Takes a Bundle with Activity's previously frozen state, if there was one Created state is always followed by onStart() Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 12 and state License. onCreate(Bundle savedInstanceState) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // The activity is being created. } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 13 and state License. onStart() –> Started Called when the Activity is becoming visible to user Can be called more than once during lifecycle Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 14 and state License. onStart() @Override protected void onStart() { super.onStart(); // The activity is about to become visible. } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 15 and state License. onRestart() –> Started Called after Activity has been stopped, immediately before it is started again Transient state Always followed by onStart() Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 16 and state License. onRestart() @Override protected void onRestart() { super.onRestart(); // The activity is between stopped and started. } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 17 and state License. onResume() –> Resumed/Running Called when Activity will start interacting with user Activity has moved to top of the Activity stack Starts accepting user input Running state Always followed by onPause() Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 18 and state License. onResume() @Override protected void onResume() { super.onResume(); // The activity has become visible // it is now "resumed" } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 19 and state License. onPause() –> Paused Called when system is about to resume a previous Activity The Activity is partly visible but user is leaving the Activity Typically used to commit unsaved changes to persistent data, stop animations and anything that consumes resources Implementations must be fast because the next Activity is not 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 Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 20 and state License. onPause() @Override protected void onPause() { super.onPause(); // Another activity is taking focus // this activity is about to be "paused" } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 21 and state License. onStop() –> Stopped Called when the Activity is no longer visible to the user New Activity is being started, an existing one is brought in front of this one, or this one is being destroyed Operations that were too heavy-weight for onPause() Followed by either onRestart() if Activity is coming back to interact with user, or onDestroy() if Activity is going away Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 22 and state License. onStop() @Override protected void onStop() { super.onStop(); // The activity is no longer visible // it is now "stopped" } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 23 and state License. onDestroy() –> Destroyed Final call before Activity is destroyed User navigates back to previous Activity, or configuration changes Activity is finishing or system is destroying it to save space Call isFinishing() method to check Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 24 and state License. onDestroy() @Override protected void onDestroy() { super.onDestroy(); // The activity is about to be destroyed. } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 25 and state License. Activity instance state Android Developer Fundamentals V2 26 Activity instance state State information is created while the Activity is running, such as a counter, user text, animation progression A user expects an activity's UI state to remain the same throughout a configuration change, such as rotation or switching into multi-window mode. However, by default the system destroys the activity when such a configuration change occurs, wiping away any UI state stored in the activity instance. Further reading: https://developer.android.com/topic/libraries/architecture/saving-states Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 29 and state License. Saving and restoring Activity state Android Developer Fundamentals V2 30 What the system saves System only save: ○ State of views with unique ID (android:id) such as text entered into EditText ○ Intent that started activity and data in its extras You are responsible for saving other activity and user progress data Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 31 and state License. Saving instance state Implement onSaveInstanceState() in your Activity Called by Android runtime when there is a possibility the Activity may be destroyed Saves data only for this instance of the Activity during current session Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 32 and state License. onSaveInstanceState(Bundle outState) @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); // Add information for saving HelloToast counter // to the outState bundle outState.putString("count", String.valueOf(mShowCount.getText())); } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 33 and state License. Restoring instance state Two ways to retrieve the saved Bundle in onCreate(Bundle mySavedState) Preferred, to ensure that your user interface, including any saved state, is back up and running as quickly as possible Implement callback (called after onStart()) onRestoreInstanceState(Bundle mySavedState) Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 34 and state License. Restoring in onCreate() @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mShowCount = findViewById(R.id.show_count); if (savedInstanceState != null) { String count = savedInstanceState.getString("count"); if (mShowCount != null) mShowCount.setText(count); } } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 35 and state License. onRestoreInstanceState(Bundle state) @Override public void onRestoreInstanceState (Bundle mySavedState) { super.onRestoreInstanceState(mySavedState); if (mySavedState != null) { String count = mySavedState.getString("count"); if (count != null) mShowCount.setText(count); } } Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 36 and state License. Instance state and app restart When you stop and restart a new app session, the Activity instance states are lost and your activities will revert to their default appearance If you need to save user data between app sessions, use shared preferences or a database. Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 37 and state License. CSC 557 Project OCTOBER 2025 ACADEMIC SESSION Project Theme: Edutainment Instruction: 1. This is group a group project that form of 3@4 members. 2. Prepare your project by refering given rubric. 3. Prepare your proposal and submit on 29/11/2024 (Week 8) infront my office (Hard copy) before 12.00 pm. Activity lifecycle This work is licensed under a Creative Android Developer Fundamentals V2 Commons Attribution 4.0 International 38 and state License. Consider user experience END in mobile app Thank you development Android Developer Fundamentals V2 39