Android之Activity生命周期详细分析
发布时间:2021-12-18 15:44:32 所属栏目:教程 来源:互联网
导读:Android之Activity生命周期史无前例的详细介绍,新手必必必看。 Android的Activity生命周期是一个非常重要的知识点,但是由于Activity的状态众多,而且状态直接的切换类型也十分的众多,导致Activity的方法很多,这就给新手学习并理解Activity造成了一定的难
Android之Activity生命周期史无前例的详细介绍,新手必必必看。 Android的Activity生命周期是一个非常重要的知识点,但是由于Activity的状态众多,而且状态直接的切换类型也十分的众多,导致Activity的方法很多,这就给新手学习并理解Activity造成了一定的难度,如果你能认真读完我这一篇博文,那么我相信你一定能对Activity的理解达到一个崭新的高度,ok,下面是我对Activity的理解。 要想透彻的理解Activity,那么必须了解一个计算机的名词,“堆栈”,因为Activity的状态切换方式十分类似于数据结构中的堆栈。 1、首先介绍什么是堆栈,及其特点。 2、介绍Activity的七个状态方法。 3、结合堆栈,详解Activity状态直接的切换和各个方法的调用。 1)、下面我来介绍一下什么是“堆栈”。 堆栈 可以简单的理解成一个的 “竹筒”,只不过种竹筒是一端封闭另一端开启的,如图所示: 透过这个竹筒我们不难发现,因为堆栈的一端是封闭的,所以要想往里面放东西,必须从一端放,取的时候也只能从一端取,就是这堆栈最重要的特点,“后进先出”。 2)、下面我要介绍的是Activity的七个状态方法。 附官方文档图一张: 然后附我代码一篇: package cn.blue.life; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class LifteActivity extends Activity { Button bt; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.main); bt=(Button) this.findViewById(R.id.bt); bt.setText("第一个activity"); bt.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent=new Intent(LifteActivity.this,LifteActivitySecond.class); startActivity(intent); } }); Log.i("Mytag","First----onCreate"); } protected void onDestroy() { Log.i("Mytag","First----onDestroy"); super.onDestroy(); } protected void onPause() { Log.i("Mytag","First----onPause"); super.onPause(); } protected void onRestart() { Log.i("Mytag","First----onRestart"); super.onRestart(); } protected void onResume() { Log.i("Mytag","First----onResume"); super.onResume(); } protected void onStart() { Log.i("Mytag","First----onStart"); super.onStart(); } protected void onStop() { Log.i("Mytag","First----onStop"); super.onStop(); } // protected void onRestoreInstanceState(Bundle savedInstanceState) { // Log.i("Mytag","First----onRestoreInstanceState"); // super.onRestoreInstanceState(savedInstanceState); // } // protected void onSaveInstanceState(Bundle outState) { // Log.i("Mytag","First----onSaveInstanceState"); // super.onSaveInstanceState(outState); // } } onCreate(Bundle savedInstanceState) onStart() onResume() onPause() onStop() onDestroy() onRestart() onCreate(Bundle savedInstanceState) Activity的初始化,也就是一个全新的Activity开始时,调用该方法 onStart() Activity的启动,当你能够看到Activity时,启动该方法, onResume() 当Activity获取用户焦点将要与用户交互时调用此方法,此时activity在activity栈的栈顶,用户输入已经可以传递给它 onPause() 当系统要启动一个其他的activity时调用(其他的activity显示之前),这个方法被用来提交那些持久数据的改变、停止动画、和其他占用CPU资源的东西。由于下一个activity在这个方法返回之前不会resumed,所以实现这个方法时代码执行要尽可能快。 如果activity重新回到前景时将调用onResume(), 如果对用户彻底不可见则会调用onStop()。 onStop() 当另外一个activity恢复并遮盖住此activity,导致其对用户不再可见时调用。一个新activity启动、其它activity被切换至前景、当前activity被销毁时都会发生这种场景。 当activity重新回到前景与用户交互时调用onRestart(),如果activity将退出则调用onDestory()。 onDestroy() 在你的activity被销毁前所调用的最后一个方法,当进程终止时会出现这种情况 onRestart() 当activity从停止状态重新启动时调用。其后调用onResume()。 (编辑:我爱故事小小网_铜陵站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |