Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android开发系列二之窗口Activity的生命周期大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在上篇文章给大家介绍了android开发系列一之用按钮实现显示时间,感兴趣的朋友可以点击阅读详情。

在Activity从创建到销毁的过程中需要在不同的阶段调用7个生命周期的方法这7个生命周期方法定义如下:

protected void onCreate(Bundle savedInstanceStatE)
protected void onStart()
protected void onResume()
protected void onPause()
protected void onStop()
protected void onRestart()
protected void onDestroy()

上面7个生命周期方法分别在4个阶段按一定的顺序进行调用

1,开始Activity:在这个阶段依次执行3个生命周期方法,分别是onCreate,onStart,onResume

2,Activity失去焦点:如果在Activity获得焦点的情况下进入其他的Activity或者应用程序,当前的Activity会失去焦点,这一阶段会依次执行onPause,onStop方法

3,Activity重新获得焦点:这时会依次执行onRestart,onResume方法

4,关闭Activity:当Activity被关闭时系统会依次执行3个生命周期方法,分别是onPause,onStop,onDestory

如果这4个阶段执行生命周期方法的过程中不发生状态的改变,系统会按照上面的顺序依次执行4个阶段的生命周期方法,如果在执行过程中改变了状态,系统会按照更复杂的方法调用生命周期方法

如果在执行onStop方法的过程中Activity重新获得焦点,然后又失去了焦点,系统将不会执行onDestory方法,而是按照下面顺序执行生命周期方法

onStop->onRestart->onStart->onResume->onPause->onStop

下图描述了Activity从创建到销毁以及中间状态的改变后调用生命周期方法的过程

Android开发系列二之窗口Activity的生命周期


从上图所示的Activity生命周期调用方法示意图不难看出,在整个Activity的生命周期中包含两层循环,第一层循环是onPause->onResume->onPause,第二层循环onStop->onRestart->onStart->onResume->onPause->onStop。我们可以将这两层循环看成是整个Activity生命周期中的子生命周期。

第一层循环称为焦点生命周期,第二层循环称为可视生命周期,也就是说,第一层循环再Activity焦点的获得与失去的过程中循环,在这一过程中,Activity始终是可见的,第二层循环是在Activity可见与不可见的过程中循环,在这个过程中伴随着Activity焦点的获得与失去,也就是说,Activity首先会被显示,然后会获得焦点,接着失去焦点,最后由于弹出其他的Activity使当前的Activity变成不可见

因此,Activity有如下3种生命周期:

  1.整体生命周期:onCreate->....->onDestroy

  2.可视生命周期:onStart->....->onStop

  3.焦点生命周期:onResume->....->onPause

下面代码分别在Activity类中7个生命周期方法输出日志信息

package com.neil.ad02;
import android.app.Activity;
import android.os.bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceStatE) {
super.onCreate(savedInstanceStatE);
Log.d("onCreate","onCreate Method is executed");
setContentView(R.layout.activity_main);
}
@Override
protected void onDestroy()
{
super.onDestroy();
Log.d("onDestroy","onDestroy Method is executed");
}
@Override
protected void onPause()
{
super.onPause();
Log.d("onPause","onPause Method is executed");
}
@Override
protected void onRestart()
{
super.onRestart();
Log.d("onRestart","onRestart Method is executed");
}
@Override
protected void onResume()
{
super.onResume();
Log.d("onResume","onResume Method is executed");
}
@Override
protected void onStart()
{
super.onStart();
Log.d("onStart","onStart Method is executed");
}
@Override
protected void onStop()
{
super.onStop();
Log.d("onStop","onStop Method is executed");
}
}

打开Android Device Monitor观察

Android开发系列二之窗口Activity的生命周期

图中红框里是重新获得焦点,其他的你们可以一一尝试

以上内容是小编给大家介绍的Android学习系列二之窗口Activity的生命周期,希望对大家以上帮助!

大佬总结

以上是大佬教程为你收集整理的Android开发系列二之窗口Activity的生命周期全部内容,希望文章能够帮你解决Android开发系列二之窗口Activity的生命周期所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。