问题描述
onCreate(Bundle savedInstanceState);
onStart();
onRestart();
onResume();
onPause();
onStop();
onDestroy();
onPostCreate(Bundle savedInstanceState);
onPostResume();
调用超类方法可能会有所帮助,除非您自己管理活动的状态或故意更改活动的行为-在这种情况下可能是有害的)
onSaveInstanceState(Bundle savedInstanceState);
onRestoreInstanceState(Bundle savedInstanceState);
onBackPressed();
onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo);
onCreateOptionsMenu(Menu menu);
onOptionsItemSelected(MenuItem item);
onContextItemSelected(MenuItem item);
onMenuItemSelected(int featureId, MenuItem item);
实际上,重写任何方法时,最好查看重写的类的源代码,并确切地了解此方法的作用。
解决方法
创建自己的Activity子类时,我们将覆盖一些基本的Activity生命周期功能。
我们 必须 在其中哪些方法中称为超级实现, 应该 在哪里以及 只有什么好方法 ?
// base lifecycle
onCreate(Bundle savedInstanceState);
onStart();
onRestart();
onResume();
onPause();
onStop();
onDestroy();
finalize();
onUserLeaveHint();
// instance state
onSaveInstanceState(Bundle outState);
onRestoreInstanceState(Bundle savedInstanceState)
// others
onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo);
onCreateOptionsMenu(Menu menu);
onOptionsItemSelected(MenuItem item);
onContextItemSelected(MenuItem item);
onMenuItemSelected(int featureId,MenuItem item);
onActivityResult(int requestCode,int resultCode,Intent data);
onBackPressed();
方法列表不是最终的,请随时添加更多功能,在哪里应该知道该怎么做。