Android开发——Activity的生命周期

一、Activity生命周期的四个状态

  1. 运行状态
    处于可见并可和用户交互的状态
  2. 暂停状态
    一个Activity被另外一个透明Activity或Dialog的Activity覆盖,但是任然可见,失去与用户交互的能力
  3. 停止状态
    一个Activity被另外一个透明Activity或Dialog的Activity完全覆盖,依然保持所有的状态和成员信息,但是不可见
  4. 断开状态
    Activity被系统杀死回收或者没有启动

二、Activity生命周期的七个方法

  1. onCreate
  2. onStart
  3. onResume
  4. onPause
  5. onStop
  6. onDestroy
  7. onRestart

三、生命周期的实例

主要代码内容是重写七个方法(两个Activity中均按照下面代码重写七个方法)

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show__image);
        System.out.println("ShowImage_onCreate");
    }
    @Override
    public void onStart()
    {
    
    
        super.onStart();
        System.out.println("ShowImage_onStart");
    }
    public void onRestart()
    {
    
    
        super.onRestart();
        System.out.println("ShowImage_onRestart");
    }
    public void onResume()
    {
    
    
        super.onResume();
        System.out.println("ShowImage_onResume");
    }
    public void onPause()
    {
    
    
        super.onPause();
        System.out.println("ShowImage_onPause");
    }
    public void onStop()
    {
    
    
        super.onStop();
        System.out.println("ShowImage_onStop");
    }
    public void onDestroy()
    {
    
    
        super.onDestroy();
        System.out.println("ShowImage_onDestroy");
    }

1.一个Activity中启动另外一个Activity(完全覆盖)
跳转到另外一个Activity代码

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
    
    Button btn_image;
    @SuppressLint("WrongViewCast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn_image=findViewById(R.id.imageshow);
        btn_image.setOnClickListener(this);
        System.out.println("MainActivity_onCreate");
    }

    @Override
    public void onClick(View view) {
    
    
        Intent intent=new Intent();
        intent.setAction("openimage");
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        startActivity(intent);
    }
}

运行结果
打开APP
在这里插入图片描述
打开另外一个Activity
在这里插入图片描述
退出新Activity和APP
在这里插入图片描述
2. 一个Activity中启动另外一个Activity(非完全覆盖)
上面代码基础上做出下面修改
在这里插入图片描述
运行结果
打开APP
在这里插入图片描述
打开另外一个Activity
在这里插入图片描述
关闭新Activity和APP
在这里插入图片描述
3.横竖屏切换
不做修改
打开APP
在这里插入图片描述
横屏变竖屏
在这里插入图片描述
修改内容
在这里插入图片描述
运行结果
在这里插入图片描述
添加修改后,横竖屏切换Activity并没有调用七个方法中的任何一个。

四、一个Activity的生命周期流程

通过上面的实例,可以得出下面的流程
在这里插入图片描述
整体来看,Activity的生命周期的变化主要是对七个方法的调用,实现状态的变化。

猜你喜欢

转载自blog.csdn.net/qq_43279579/article/details/115248948