Android生命周期详解
来源:互联网 发布:比较有名仓储软件 编辑:程序博客网 时间:2024/05/21 20:21
首先我们先创建一个Android项目,将Activity重写以下方法:安卓生命周期的方法包括onCreate()(创建)、onStart()(开始)、onRestart()(重新开始)、onResume()(重绘)
onPause()(暂停)、onStop()(停止)和onDestroy()(销毁)。Android的生命周期其实就是Activity的生命周期,而Activity的生命周期就在于这七个方法之间的调用。
首先我们来看看重写的七个方法:
package com.jzlg.activitydome;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.v("MainonCreate", "onCreate");
}
protected void onStart() {
super.onStart();
Log.v("MainonStart", "onStart");
}
protected void onResume() {
super.onResume();
Log.v("MainonResume", "onResume");
}
protected void onPause() {
super.onPause();
Log.v("MainonPause", "onPause");
}
protected void onStop() {
super.onStop();
Log.v("MainonStop", "onStop");
}
protected void onRestart() {
super.onRestart();
Log.v("MainonRestart", "onRestart");
}
protected void onDestroy() {
super.onDestroy();
Log.v("MainonDestroy", "onDestroy");
}
}
我们在每个方法中使用Log.v();用来在后台输出打印信息。以此来看看方法的调用过程,实现完七个方法后。我们来运行下项目,看看会调用哪些方法。
这时我们可以发现,当程序走完onResume()方法时。这时的界面才会输出信息。方法执行的流程为:onCreate()(创建)--->onStart()(开始)--->onResume()(重绘)
总结:只有当调用onResume()(重绘)方法时才会显示出用户交互界面。
假如我们在使用应用的时候一不小心把屏幕锁定了。那这时会调用哪写方法呢。
大家可以发现,当我锁定屏幕之后。首先调用的方法就是:onPause()(暂停)方法
那解锁之后又会调用那些方法呢?
可以发现,解锁之后。而当用户解锁之后则会重新调用onResume()(重绘)方法。重新显示出用户交互界面。流程:onResume()(重绘)-->onPause()(暂停)-->onResume()(重绘)
假如我们在使用应用的时候突然来电话了怎么办,这时又会调用哪写方法呢?
可以看出,当来电时会首先调用onPsuse()(暂停),接着调用onStop()(停止)。
那当我们挂了电话,重新回到应用界面时。又会调用那些方法呢。
可以发现,当我们挂了电话之后。会调用:onRestart()-->onStart()--onResume()
整个流程:onResume()-->onPause()-->onStop()-->onRestart()-->onStart()--onResume()
假如当我们使用“Home”键会调用哪些方法呢?
再次回到界面时所调用的方法:
整个流程:onResume()-->onPause()-->onStop()-->onRestart()-->onStart()--onResume()
当我们使用返回键,退出应用时
以上的几种情况就是安卓的生命周期了。在此我额外的总结了一些经验与大家分享:
销毁之前的Activity,调用startActivity()方法的时候加上一句:this.finish() .
当用户请求跳转到另外一个Activity时,前一个Activity并没有销毁。
当用户请求之后onResume()方法会调用onPause()-->onStop().
流程:onResume()-->onPause()-->onStop()
当Activity A跳转到Activity B时,这时Activity A的运行流程为:onResume()-->onPause()-->onStop()。跳转到B之后,A的状态会保持在onStop()方法,
如果B重新返回到A时,这时A的onStop()方法会去调用onRestart()方法重新开始。
A-->B-->A,Activity A中方法运行流程:onResume()-->onPause()-->onStop()-->onRestart()-->onStart()--onResume()
当Activity A跳转到Activity B时,Activity B中的运行流程:onCreate()(创建)--->onStart()(开始)--->onResume()(重绘)
如果Activity B返回到Activity A时。这时Activity B中的运行流程:onResume()-->onPause()-->onStop()-->onDestroy()
线程与生命周期:安卓生命周期主要是影响主线程,与子线的交互无关。例如当安卓生命周期onDestroy()时,子线程可以照样运行
子线程不受生命周期的约束。
当屏幕发生改变时,安卓生命周期会从新加载,从头开始onCreate()
当MainActivity处于onPause和onStop状态时,当更高优先级的apps需要内存,而此时系统内存不够了,
那么android系统就会将MainActivity所在的进程给杀了以释放资源。
- Android Activity 生命周期详解
- Android Activity生命周期详解
- android activity 生命周期详解
- Android Activity生命周期详解
- Android MediaPlayer生命周期详解
- Android Activity生命周期详解
- Android生命周期详解
- Android Fragment 生命周期详解
- Android Activity生命周期详解
- 详解Android Activity 生命周期
- android生命周期详解
- Android Activity生命周期详解
- android生命周期详解
- Android中生命周期详解
- android activity 生命周期详解
- android 生命周期 详解
- 【Android】Activity 生命周期详解
- android Activity 生命周期详解
- windows和linux双系统修改启动项顺序
- 利用MultipleOutputs控制reduce输出路径
- Unity3D:角色拾取技术
- python 笔记1
- android代码的混淆
- Android生命周期详解
- 信息入口的新闻客户端如何盈利?
- JAVA数组常用方法
- 修改tomcat启动和停止时间
- Linux——安装ipython
- Bean标签中ID和Name的区别
- sd卡插拔广播
- 第八周工作总结
- 一个用组件动态创建Excel文件的实例