Android Activity详解(一)
Activity生命周期图 在此之前,我们新建一个项目,代码非常简单,两个活动之间相互跳转(本来想做GIF图的,不会~~~~(>_<)~~~~) 主活动代码如下: public class MainActivity extends AppCompatActivity { private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn); Log.i("MainActivity--->","onCreate"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this,SecondActivity.class)); } }); } @Override protected void onStart() { super.onStart(); Log.i("MainActivity--->","onStart"); } @Override protected void onResume() { super.onResume(); Log.i("MainActivity--->","onResume"); } @Override protected void onPause() { super.onPause(); Log.i("MainActivity--->","onPause"); } @Override protected void onStop() { super.onStop(); Log.i("MainActivity--->","onStop"); } @Override protected void onDestroy() { Log.i("MainActivity--->","onDestroy"); super.onDestroy(); } @Override protected void onRestart() { super.onRestart(); Log.i("MainActivity--->","onRestart"); } } 第二个页面代码相差无几,就补贴上了,节省版面。 1,点击应用,进入MainActivity I/MainActivity--->: onCreate(创建) I/MainActivity--->: onStart(开启,逻辑层面的可见状态) I/MainActivity--->: onResume(页面运行中) 2,跳转到SecondActivity页面 I/MainActivity--->: onPause(MainActivity由onResume切换到暂停状态) I/SecondActivity--->: onCreate(SecondActivity创建) I/SecondActivity--->: onStart(SecondActivity开启,逻辑层面的可见状态) I/SecondActivity--->: onResume(SecondActivity页面运行中) I/MainActivity--->: onStop(上一个页面进入停止状态) 3,返回到MainActivity页面 I/SecondActivity--->: onPause(SecondActivity由onResume切换到暂停状态) I/MainActivity--->: onRestart(方法在停止到运行状态之间调用) I/MainActivity--->: onStart I/MainActivity--->: onResume I/SecondActivity--->: onStop(SecondActivity页面停止) I/SecondActivity--->: onDestroy(SecondActivity页面被销毁) SecondActivity页面停止容易理解,但是SecondActivity页面被销毁是怎么回事呢?为什么MainActivity跳转到另一个页面仅仅只进入了onStop()状态却没有被onDestroy(),在这我们需要说明一个安卓的回退栈的问题。 图画的不好看,见谅 当然,活动生命周期的改变并不仅仅由跳转页面所决定,比如手机的配置比较低,高优先级的系统级应用需要内存就会把应用杀死,那毫无疑问 活动将由onResume——>onPause——>onStop——>onDestroy 最后一个特殊情况再测试点击手机HOME键: 绝大多数的教程内均写的是点击HOME键任务进入后台,活动onStop()被保存,但是我在真机测试时并不是这样 I/MainActivity--->: onPause I/MainActivity--->: onStop I/MainActivity--->: onDestroy 我的设备是魅族MX4,安卓5.1的系统,个人猜想可能是安卓版本不同所导致的,还望高手不吝赐教,谢谢。 未完待续.......