什么是Activity  Activity是Android SDK中Activity类的一个具体实例,负责管理用户与信息屏的交互。在一个应用程序中通常由多个Activity构成,在Manifest.xml中会指定一个主的Activity, 如下所示<action android:name="android.intent.action.MAIN" />  当程序第一次运行时用户就会看这个Activity,这个Activity可以通过启动其他的Activity进行相关操作。当启动其他的Activity时这个当前的这个Activity将会停止,新的Activity将会压入栈中,同时获取用户焦点,这时就可在这个Activity上操作了。都知道栈是先进后出的原则,那么当用户按Back键时,当前的这个Activity销毁,前一个Activity重新恢复。
Activity的生命周期 话不多说,先上图 通过这个图我们可以很清晰的看到Activity的整个生命流程。 Activity其实是继承了ApplicationContext这个类
我们可以重写以下方法,如下代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public  class  Activity  extends  ApplicationContext  {       protected  void  onCreate (Bundle savedInstanceState) ;        protected  void  onStart () ;        protected  void  onRestart () ;        protected  void  onResume () ;        protected  void  onPause () ;        protected  void  onStop () ;        protected  void  onDestroy () ;    } 
下面我们来写一个Demo,更好地理解,新建一个项目,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 package  com.waydrow.activityliftcircle;import  android.os.Bundle;import  android.support.design.widget.FloatingActionButton;import  android.support.design.widget.Snackbar;import  android.support.v7.app.AppCompatActivity;import  android.support.v7.widget.Toolbar;import  android.view.View;import  android.view.Menu;import  android.view.MenuItem;public  class  MainActivity  extends  AppCompatActivity  {    @Override      protected  void  onCreate (Bundle savedInstanceState)  {         super .onCreate(savedInstanceState);         setContentView(R.layout.activity_main);         Toolbar  toolbar  =  (Toolbar) findViewById(R.id.toolbar);         setSupportActionBar(toolbar);         FloatingActionButton  fab  =  (FloatingActionButton) findViewById(R.id.fab);         fab.setOnClickListener(new  View .OnClickListener() {             @Override              public  void  onClick (View view)  {                 Snackbar.make(view, "Replace with your own action" , Snackbar.LENGTH_LONG)                         .setAction("Action" , null ).show();             }         });         System.out.println("on create" );     }     @Override      protected  void  onStart ()  {         super .onStart();         System.out.println("on start" );     }     @Override      protected  void  onResume ()  {         super .onResume();         System.out.println("on resume" );     }     @Override      protected  void  onPause ()  {         super .onPause();         System.out.println("on Pause" );     }     @Override      protected  void  onStop ()  {         super .onStop();         System.out.println("on stop" );     }     @Override      protected  void  onDestroy ()  {         super .onDestroy();         System.out.println("on destroy" );     }     @Override      protected  void  onRestart ()  {         super .onRestart();         System.out.println("on restrat" );     }     @Override      public  boolean  onCreateOptionsMenu (Menu menu)  {                  getMenuInflater().inflate(R.menu.menu_main, menu);         return  true ;     }     @Override      public  boolean  onOptionsItemSelected (MenuItem item)  {                                    int  id  =  item.getItemId();                  if  (id == R.id.action_settings) {             return  true ;         }         return  super .onOptionsItemSelected(item);     } } 
点击运行 显示界面如图,没有什么好说的
打开Logcat查看输出信息 
我们可以清楚的看到,这个Activity的创建过程为create->start->resume
Back键和Home键的区别 在上述运行状态下,分别点击界面的Back按钮和Home键,再次查看控制台输出Back键 :
Home键 :
这两者的区别显而易见了,点击Back按钮后,此Activity会经历pause->stop->destroy 此Activity弹出栈,程序销毁。 但是点击Home键,Activity并不会被立即销毁
后记 大家还可以尝试旋转屏幕、锁屏等后的Activity的状态,本文就不一一列举了 我的学习代码托管在Github上,链接为: 点我 
参考资料 Activity详解 (生命周期、以各种方式启动Activity、状态保存,完全退出等) 两分钟彻底让你明白Android Activity生命周期(图文)! Android四大组件之——Activity的生命周期 (图文详解) 
如有问题,欢迎直接在下方讨论留言 我的邮箱为:Waydrow@163.com