# Android Activity 的生命周期
来源:互联网 发布:苏州园区网络托管 编辑:程序博客网 时间:2024/04/30 06:08
Android Activity 的生命周期
我写博客的目的主要是总结一下自己一段时间学到的一些重要的知识点,如果有些地方写的不对,或不妥,欢迎指出:
- activity生命周期有哪些回调函数
- 这些回调函数在何时被调用
- 一个生命周期的实例
首先我们先来看一下android API中的一张生命周期图,这张图就很好的展示了android Activity的生命周期。
从上图中我们可以看到Activity的生命周期的所有方法。
- protected void onCreate(){}
- protected void onStart(){}
- protected void onResume(){}
- protected void onPause(){}
- protected void onRestart(){}
- protected void onStop(){}
- protected void onDestroy(){}
当我们第一次启动一个Activity是首先系统会依次调用:onCreate() –>
onStart() –>onResume(); 之后Activity就可以与用户交互。也就是Activity处于可见状态。当用户按下home键,或跳转到其他界面,系统会调用:onPause() –> onStop(); Activity处于不可见状态。此时用户如果再次回到Activity, 则系统会先后调用:onRestart() –> onStart() –> onResume()。若退出当前应用,或Activity被回收则调用:onDestory()。若旋转屏幕时Activity会被重新创建,当前Activity会被销毁然后创建一个横屏的Activity,系统会先后调用:onStop() –> onDestory() –> onCreate() –> onStart() –> onResume()。
为了更好的理解,下面简单的写一个Demo,创建一个LifeCycle的应用,在MainActivity中重写Activity生命周期的7个方法,当生命周期的方法被调用的时候,会在Log打印一句话。
package com.app.mario.lifecycle;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;public class MainActivity extends AppCompatActivity { private Button mJumpTo; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mJumpTo = (Button) findViewById(R.id.jumpTo); mJumpTo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } }); Log.d(TAG,"onCreate() was called"); } @Override protected void onStart() { super.onStart(); Log.d(TAG,"onStart() was called"); } @Override protected void onResume() { super.onResume(); Log.d(TAG, "onResume() was called"); } @Override protected void onPause() { super.onPause(); Log.d(TAG, "onPause() was called"); } @Override protected void onStop() { super.onStop(); Log.d(TAG, "onStop() was called"); } @Override protected void onRestart() { super.onRestart(); Log.d(TAG, "onRestart() was called"); } @Override protected void onDestroy() { super.onDestroy(); Log.d(TAG, "onDestroy() was called"); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
第一次启动时MainActivity
在Logcat中可以看到那些方法被调用了:
系统依次调用了 onCreate() –> onStart() –> onResume()。
当按下home键时Logcat中可以看到:
系统先后调用了 onPause() –> onStop()。
再次回到应用中时在Logcat中可以看到:
系统先后调用了: onRestart() –> onStart() –> onResume()。
当从MainActivity跳转到第二个Activity时Logcat:
系统先后调用了 onPause() –> onStop()。
当界面旋转过来时:
Logcat:
系统先后调用了:onPause() –> onStop() –> onDestroy() –> onCreate() –> onStart() –> onResume()。
到此我们就基本上对Activity的生命周期有了一个初步的了解。
- Android activity的生命周期
- Android:Activity的生命周期
- Android Activity的生命周期
- Android Activity的生命周期
- Android Activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android Activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android activity的生命周期
- Android Activity的生命周期
- LinkedList源码分析
- NGUI之UITab Bar的不能将Sprite与SelectedSprite设置成相同的精灵
- SpringMVC-07 mvc:annotation-driven
- 优化算法——拟牛顿法之DFP算法
- VM中安装CentOS
- # Android Activity 的生命周期
- OC的方法和 函数
- 【Java心得总结三-----初识泛型】
- #笔记#圣思园 JavaSE 第48讲——Map映射
- 课堂作业1
- POJ2406寻找循环节
- NSUserDefaults重置数据
- android Application Component研究之Activity(一)
- 第五章