Android中从一个Activity跳转到另一个Activity经历的生命周期?
2016-12-19 17:56
656 查看
最近在看android的书,引起了一些启发和回忆起以前的面试经历,那是我进入第一家公司的面试官问我的问题,虽然我回答错了,但是依然被录取了,非常高兴,也非常荣幸。后来又对这个知识点进行了学习。现在看了书,再一次对比起来,发现有新的理解。 这里先列举2个Activity分别为:ActivityA和ActivityB,我们要点击ActivityA的启动ActivityB按钮,来启动ActivityB,然后点击返回键。
1、期间经历了哪些生命周期?
2、新启发,关于onStart和onResume、onPause和onStop的实质不同点?
先看ActivityA和ActivityB的代码:
ActivityA.java
public class ActivityA extends Activity { private ActivityA _this; private String TAG=ActivityA.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG,"onCreate"); setContentView(R.layout.activity_a); _this=this; } @Override protected void onStart() { super.onStart(); Log.e(TAG,"onStart"); } @Override protected void onResume() { super.onResume(); Log.e(TAG,"onResume"); } @Override protected void onPause() { super.onPause(); Log.e(TAG,"onPause"); } @Override protected void onStop() { super.onStop(); Log.e(TAG,"onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.e(TAG,"onDestroy"); } public void startActivityB(View v){ Intent intent=new Intent(_this,ActivityB.class); startActivity(intent); } }
activity_a.xml布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="startActivityB" android:text="启动ActivityB" /> </LinearLayout>
ActivityB.java的代码
public class ActivityB extends Activity { private ActivityB _this; private String TAG=ActivityB.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e(TAG,"onCreate"); setContentView(R.layout.activity_a); _this=this; } @Override protected void onStart() { super.onStart(); Log.e(TAG,"onStart"); } @Override protected void onResume() { super.onResume(); Log.e(TAG,"onResume"); } @Override protected void onPause() { super.onPause(); Log.e(TAG,"onPause"); } @Override protected void onStop() { super.onStop(); Log.e(TAG,"onStop"); } @Override protected void onDestroy() { super.onDestroy(); Log.e(TAG,"onDestroy"); } public void startActivityB(View v){ Intent intent=new Intent(_this,ActivityB.class); startActivity(intent); } }
好了,重点来了。
(1)我先启动了ActivityA,生命周期
(2)然后点击ActivityA的跳转按钮
(3)点击ActivityB的返回按钮。
注意看我圈出来的地方,ActivityA先onPause了,ActivityB执行了onCreate,当ActivityB的onResume执行了,ActivityA才stop,这个是不是和我们经常看的activity的生命周期是一样的。
对,就是一样的。到这里第一个问题已经回答了。
第二个问题,还是看上图我画圈的地方,因为在activity中onStart和onStop是从Activity是否可见的角度来说的,而onResume和onPause是从Activity是否位于前台的角度来说的。
是否可见和是否位于前台区别想必大家可想而知了。
可见并不代表已经显示在用户眼前了。(这一句才是最该理解的)
这也是我们经常在onResume中做一些显示之前的数据刷新的工作了。
好了,就到这里,谢谢大家花耐心看完。
相关文章推荐
- android 使用startActivity()从一个fragment 跳转另一个activity出错
- android实现从一个activity跳转到另一个activity中
- Android 从一个Activity跳转到另一个Activity获取第二个Activity的返回值
- android基础之如何从一个activity跳转到另一个activity
- android中如何添加一个监听按钮,点击之后从一个activity跳转到另一个activity
- Android开发从一个activity设置跳转到另一个activity中的一个fragment中的一个viewpager中的某一个页面
- Android之从一个activity跳转到另一个activity
- android之隐示意图跳转启动另一个activity
- android之隐示意图跳转启动另一个activity
- android从一个activity跳到另一个activity 报错 经验总结
- Android -- 生命周期(activity跳转过程中的生命周期)
- 安卓从一个Activity跳转到另一个Activity传递数据实现
- android从一个类跳转到另一个类的基本操作
- Android开发历程_1(从1个activity跳转到另一个activity)
- Activity之间的跳转---从一个Activity跳转到另一个Activity
- 从一个Activity跳转到另一个Activity
- 从一个Activity调转到另一个Activity时Activity的生命周期
- Android Activity之间跳转 生命周期变化详解
- 从一个Activity跳转到另一个Activity后得到需要的数据后返回加载到原有的Activitiy所在的控件上
- android 从一个activity跳转到一个画布