博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Activity详解(一)
阅读量:6100 次
发布时间:2019-06-20

本文共 2303 字,大约阅读时间需要 7 分钟。

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的系统,个人猜想可能是安卓版本不同所导致的,还望高手不吝赐教,谢谢。

未完待续.......

转载地址:http://ddbza.baihongyu.com/

你可能感兴趣的文章
web框架-(二)Django基础
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>
Excel到R中的日期转换
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>