Android Super Lifecycle

ID

java.android_super_lifecycle

Severity

high

Remediation Complexity

trivial

Remediation Risk

low

Remediation Effort

low

Resource

Reliability

Language

Java

Tags

android, reliability

Description

Reports Android lifecycle method overrides that do not call their super counterpart correctly. Init methods must call super first; teardown methods must call super last; all lifecycle methods must call super somewhere.

Rationale

Android lifecycle methods perform essential framework housekeeping. Failing to call super.onCreate(), for example, can cause crashes, resource leaks, or undefined behavior. The Android framework explicitly requires these super calls.

// Bad -- missing super.onCreate()
@Override
protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.main);
}

Remediation

Always call the corresponding super method. Place it first for init methods and last for teardown methods.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}