Android: Is onPause() guaranteed to be called after finish()?
android, java
Solution
Android will generally call `onPause()` if you call `finish()` at some point during your Activity's lifecycle unless you call `finish()` in your `onCreate()`.
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
finish();
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
}
Run, and observe that your log will only contain "onDestroy". Call `finish()` almost anywhere else and you'll see onPause() called.
Problem
Couldn't find a solid answer to this anywhere. I have a method where finish() is being called, and onPause() is called afterward. Is onPause() guaranteed to be called after a call to finish() ?