通过前面一段时间的学习,我们很清楚我们的一系列操作都离不开的一个东西,就是我们的activity 。接下来我们对 Activity 进行系统的总结。
Activity 的四种基本状态
1.运行态(Running)
Activity 处于屏幕最前端,用户可见且获得焦点。
2.暂停态(Paused)
Activity被置于后台,用户可见,但失去焦点
3.停止态(Stopped)
Activity 被新的Activity覆盖失去焦点,用户不可见。
4.终止态(Destroyed)
Activity被系统终止,资源被回收。
Activity 的生命周期
onCreate: 创建Activity 的实例对象的方法
onStart : 启动当前的 Activity 实例的方法
onResume: 如果该方法执行,页面的实例就和用户可以进行交互
onPause: 如果该方法执行,页面就和用户不再交互失去焦点,页面仍旧可见 在内存当中
onStop:页面就和用户完全不可见
onDestroy: 销毁当前的 Activity 的页面实例
onRestart:将至于后台的应用程序的Activity 重新显示在前台的时候被调用
注意:
Activity 的生命周期方法都是成对出现的。onStart----onStop ; OnCreate -----onDestroy ;onResume----onPause
onResume----onPause 方法会比其他的生命周期方法执行的比较频繁,所以一般在这两个方法中写的代码较少
这里是官网总结的activity 运行流程图
接下来,我们还是上代码带大家走一遍,感受下activity 的生命周期。
我们直接创建一个项目,利用logcat 观察他的生命周期。
1 package com.example.testactivitylife; 2 3 import android.app.Activity; 4 import android.os.Bundle; 5 import android.util.Log; 6 import android.view.Menu; 7 import android.view.MenuItem; 8 9 10 public class MainActivity extends Activity { 11 12 //页面实例被创建的方法 13 @Override 14 protected void onCreate(Bundle savedInstanceState) { 15 super.onCreate(savedInstanceState); 16 setContentView(R.layout.activity_main); 17 Log.i("TAG", "onCrate方法被执行"); 18 19 } 20 @Override 21 protected void onStart() { 22 Log.i("TAG", "onStart方法被执行"); 23 super.onStart(); 24 } 25 26 @Override 27 protected void onPause() { 28 Log.i("TAG", "onPause方法被执行"); 29 super.onPause(); 30 } 31 @Override 32 protected void onResume() { 33 Log.i("TAG", "onResume方法被执行"); 34 super.onResume(); 35 } 36 @Override 37 protected void onStop() { 38 Log.i("TAG", "onStop方法被执行"); 39 super.onStop(); 40 } 41 @Override 42 protected void onDestroy() { 43 44 Log.i("TAG", "onDestroy方法被执行"); 45 super.onDestroy(); 46 } 47 @Override 48 protected void onRestart() { 49 Log.i("TAG", "onRestart方法被执行"); 50 super.onRestart(); 51 } 52 }
以上就是activity 的整个生命周期。我了解的大概就是这些。后续我们会在实际案例中,将我们的代码合理的放置于我们的方法中,提高我们程序的运行效率等。
如有不适之处,望各位大神提点出来。[微笑]