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);
}