关于安卓Activity生命周期滴总结
来源:互联网 发布:特效制作软件app 编辑:程序博客网 时间:2024/05/21 10:30
因为之前曾经遇到过一次关于安卓生命周期两个activity之间跳转后,到底调用了哪些生命周期的面试题,我自认为答得不够理想,所以引发出我滴这一篇文章,关于activity生命周期滴探究。
1:activity启动的时候调用的生命周期;
先来说说我们测试的流程吧,第一用Androidstudio创建一个项目,然后呢创建一个Activity,取名叫MainActivity,然后创建一个对应的MainActivity对应的布局文件叫做activity_main,里面分别放置了一个textView 和一个用于跳转的button;代码如下:
<pre name="code" class="java">public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(getClass().getName(), "我是onCreate"); init(); setUpView(); } private void init() { button = (Button) findViewById(R.id.button1); } private void setUpView() { button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, SecondActivity.class)); } }); } @Override protected void onStart() { super.onStart(); Log.d(getClass().getName(), "我是onStart"); } @Override protected void onResume() { super.onResume(); Log.d(getClass().getName(), "我是onResume"); } @Override protected void onPause() { super.onPause(); Log.d(getClass().getName(), "我是onPause"); } @Override protected void onStop() { super.onStop(); Log.d(getClass().getName(), "我是onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.d(getClass().getName(), "我是onDestroy"); } @Override protected void onRestart() { super.onRestart(); Log.d(getClass().getName(), "我是onRestart"); }}
activity_main的代码也分别如下:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="yuan.lifeperiod.com.MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="60dp" android:textSize="25sp" android:text="我是第一个页面" android:textColor="#000" android:gravity="center"/> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="60dp" android:background="@android:color/black" android:text="我是一个按钮" android:textColor="#fff" android:layout_margin="10dp" android:textSize="25sp"/></LinearLayout>
接下来 就是运行测试滴时刻了:
第一步贴上运行滴效果图:
第二步,我们可以看到logcat输出滴生命周期:
没错,第一次运行启动的时候,activity生命周期就是onCreate->onStart->onResume;
2:activity启动后,按下home键调用的生命周期:
这时候就是答案揭晓滴时刻,我按下home键,可以看到生命周期调用了哪些
没错,调用了onPause->onStop;
然后呢,我再直接打开它,又分别调用了这些生命周期
可以看到调用了onRestart->onStart->onResume;
接着我再大胆滴测试了一把,按了home键,然后直接从后台销毁它,发觉生命周期木有变化
还是跟原来滴一模一样。
当我再好奇滴又重新打开一次的时候,发现activity已经被销毁了;然后生命周期又开始重新调用了:
3:activity启动后,按下返回键调用的生命周期:
还是原来滴MainActivity启动后,我直接点下手机返回按钮,可以看到分别调用了这些生命周期:
然后呢我们再重新打开它一下
可以看到又调用了onCreate->onStart->onResume
3:activity启动后,按下按钮,弹出dialog后Activity调用的生命周期:
4:activity启动后,跳转到另一个activity,调用的生命周期:
然后呢,我再重新按一下返回按钮,看一下又重新调用了哪些生命周期:
- 关于安卓Activity生命周期滴总结
- 安卓总结 Activity生命周期
- 关于安卓Activity生命周期的讲解
- 安卓activity生命周期
- 安卓activity生命周期
- 安卓activity生命周期
- 安卓Activity 生命周期
- 安卓Activity生命周期
- 安卓-Activity生命周期
- 安卓activity生命周期
- 安卓activity生命周期
- 安卓 Activity 生命周期
- 安卓简述activity生命周期
- 安卓Activity生命周期初探
- 安卓Activity的生命周期
- 【安卓笔记】activity生命周期
- 安卓开发Activity生命周期
- 安卓Activity生命周期详解
- 【深度学习】在Caffe中配置神经网络的每一层结构
- 两个炮台切换的笔记(局限性)
- 怎么用CSS画一个哭脸?
- Android AsyncTask用法及源码分析
- 利用python实现批量自动化运维脚本案例
- 关于安卓Activity生命周期滴总结
- Java对象内存占用分析
- Java使用ProcessBuilder执行本地命令
- C#小练习ⅱ
- order by与索引
- IOS中延时执行的几种方式的比较和汇总
- 自己主播
- Mac 使用homebrew搭建 PHP 运行环境
- 颜色选择