Android Activity 生命周期及加载模式

1.Activity生命周期的管理方法:

onCreate();//创建
onStart();//运行
onResume();//获取焦点
onPause();//失去焦点
onStop();//暂停
onDestroy();//销毁
onRestart();//

管理方法的结果:

Android Activity 生命周期及加载模式_第1张图片

由此方法得到的Activity状态:

1.活动状态:Active/running,界面最顶端,获取焦点
2.暂停状态:Paused,失去焦点,用户可见
3.停止状态:Stoped,被完全遮挡,保留 所有状态和成员信息
3.非活动状态:Killed,Activity被停止

android页面跳转:

打开->关闭
onCreate onStart() onResume() onPause() onStop() onDestroy()

打开->后台不可见->返回前台
onCreate onStart() onResume() onPause() onStop() onRestart() onStart() onResume()

打开->后台可见->前台
onCreate onStart() onResume() onPause() onResume()

观察代码

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    @Override
    protected void onStart() {
        // TODO Auto-generated method stub
        super.onStart();
        Log.i("tag","start");
    }
    
    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        Log.i("tag","resume");
    }
    
    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        Log.i("tag","pause");
    }
    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
        Log.i("tag","stop");
    }
    @Override
    protected void onDestroy() {
        // TODO Auto-generated method stub
        super.onDestroy();
        Log.i("tag","destroy");
    }
    @Override
    protected void onRestart() {
        // TODO Auto-generated method stub
        super.onRestart();
        Log.i("tag","restart");
    }

2.Activity加载模式
Standard模式:每次启动创建新的实例,并将Activity添加到当前Task中
singleTop模式:当Activity位于栈顶,直接复用已有实例而不会重新创建
singleTask模式:在一个Task只会有一个Activity。若要启动的Activity在Task不存在,创建新的实例;在Task栈顶时直接调用;在Task非栈顶则将其他Activity全部pop出栈,将其置于栈顶后调用
singleLinstance模式:无论在哪个Task中启动目标,只会创建一个实例,并会创建全新的Task栈用于加载Activity。若要启动的Activity不存在,创建新的Task后新建Activity并置于栈顶;要启动的Activity存在时,将其所在Task转入前台,

你可能感兴趣的:(Android Activity 生命周期及加载模式)