作为一个即将面世的程序媛,对于前途一无所知,只有努力地去面对,才不会显得那么费劲。个人对于自己所学的知识,做了一些简单的总结,方便面试前的复习。
先来看看Activity生命周期状态转换图
1、Activuty的三大状态和七大生命周期方法分析
/**
* Activuty的三大状态和七大生命周期方法分析
*/
public class MainActivity extends Activity {
/**
* Activity创建时第一个调用的方法,通常我们在该方法中加载布局文件,初始化UI组件,时间注册等等
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("MainActivity_onCreate");
}
/**
* 在onCreate方法之后调用,用于显示界面,但用户还不能进行交互
*/
@Override
protected void onStart() {
super.onStart();
System.out.println("MainActivity_onStart");
}
/**
*当一个stopped状态的Activity被返回时调用,之后再调用onResume()方法进入运行状态
*/
@Override
protected void onRestart() {
super.onRestart();
System.out.println("MainActivity_onRestart");
}
/**
* 在onStart方法后调用,该方法执行完成后,用户可进行交互,当前Activity进入resumed状态
* 当一个paused状态的activity呗重新返回时,会再次调用该方法,让activity进入运行状态
*/
@Override
protected void onResume() {
super.onResume();
System.out.println("MainActivity_onResume");
}
/**
* 当其他Activity(透明或窗口模式)进入时,该方法会被调用,让当前Activity进入paused状态(暂停状态)
* 当前Activity还可见但不能交互,如果其他更高优先级的APP需要内存时,当前Activity可能会被销毁(kill)
* 当前Activity被返回时会调用onResume()方法
*/
@Override
protected void onPause() {
super.onPause();
System.out.println("MainActivity_onPause");
}
/**
* 当其他Activity完全覆盖该Activity时,会被调用,当前Activity进入stopped状态(停止状态)
* 不可见,如果其他更高优先级的APP需要内存时,当前Activity可能会被销毁(kill)
* 当前Activity被返回时会调用onRestart()方法
*/
@Override
protected void onStop() {
super.onStop();
System.out.println("MainActivity_onStop");
}
/**
* 当前Activity被销毁时调用,通常在该方法中用来释放资源,当前Activity kiiled。
*/
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("MainActivity_onDestroy");
}
}
2、Activity的四大启动模式简述
Activity是Android的四大组件之一,在Android系统中是通过栈的方式对多个Activity进行管理。
启动方式决定了Android系统在启动一个Activity时,对栈该进行什么样的操作。
补充四大启动模式的使用场景:
Standard:大多数Activty。
SingleTop:如新闻类或者阅读类APP的内容内面。
SingleTask:如浏览器的主页面。不管从多少个应用启动浏览器,只会启动主界面一次,其余情况都会做onNewIntent,并且会清空主界面上面的其他页面。
SingleInstance:如闹铃提醒,将闹铃提醒与闹铃设置分离。SIngleInstance不要用于中间页面,比如:A->B(singleInstance)->C,完全退出后,在此启动,首先打开的时B。