Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Android App Lifecycle

Introduction

The Android app lifecycle is a series of states that an application goes through from when it is created to when it is destroyed. Understanding these states is crucial for managing resources and creating a smooth user experience.

Lifecycle Methods

Android apps are primarily managed through the Activity and Fragment classes. The main lifecycle methods are:

  • onCreate(): Called when the activity is first created.
  • onStart(): Called when the activity becomes visible to the user.
  • onResume(): Called when the activity starts interacting with the user.
  • onPause(): Called when the activity is partially obscured or when another activity comes to the foreground.
  • onStop(): Called when the activity is no longer visible to the user.
  • onDestroy(): Called before the activity is destroyed.
  • onRestart(): Called when the activity is being restarted after being stopped.

Example Code


public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onStart() {
        super.onStart();
        // Code to run when the activity is visible
    }

    @Override
    protected void onResume() {
        super.onResume();
        // Code to run when the activity starts interacting with the user
    }

    @Override
    protected void onPause() {
        super.onPause();
        // Code to run when another activity is in the foreground
    }

    @Override
    protected void onStop() {
        super.onStop();
        // Code to run when the activity is no longer visible
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // Code to run before the activity is destroyed
    }
}
                

Best Practices

To manage the app lifecycle effectively, consider the following best practices:

  • Release resources in onPause() or onStop() to save memory.
  • Use the onSaveInstanceState() method to save UI state when the activity is paused or stopped.
  • Keep the onCreate() method lightweight by initializing resources only when needed.
  • Handle configuration changes (like screen rotation) to avoid activity recreation.

FAQ

What happens when an activity is paused?

When an activity is paused, it remains visible but is no longer in the foreground. The system may stop updating the UI and suspend ongoing processes, such as animations.

How can I save data when an activity is destroyed?

You can use onSaveInstanceState() to save temporary data and restore it in onCreate() or onRestoreInstanceState().

What is the difference between onStop() and onDestroy()?

onStop() is called when the activity is no longer visible, while onDestroy() is called when the activity is being destroyed. An activity can be stopped and then restarted without being destroyed.