前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android Activity详解(一)

Android Activity详解(一)

作者头像
萬物並作吾以觀復
发布2018-09-13 17:39:02
8860
发布2018-09-13 17:39:02
举报
文章被收录于专栏:指尖下的Android指尖下的Android

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

未完待续.......

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.03.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档