Activity的onCreate中启动新的Activity时生命周期
来源:互联网 发布:ubantu安装mysql数据库 编辑:程序博客网 时间:2024/05/21 06:44
05-26 00:19:22.680 3114-3114/com.lv.lifecycledemo E/MainActivity: onCreate05-26 00:19:22.690 3114-3114/com.lv.lifecycledemo E/MainActivity: onStart05-26 00:19:22.690 3114-3114/com.lv.lifecycledemo E/MainActivity: onResume05-26 00:19:22.690 3114-3114/com.lv.lifecycledemo E/MainActivity: onPause05-26 00:19:22.740 3114-3114/com.lv.lifecycledemo E/SecondActivity: onCreate05-26 00:19:22.740 3114-3114/com.lv.lifecycledemo E/SecondActivity: onStart05-26 00:19:22.740 3114-3114/com.lv.lifecycledemo E/SecondActivity: onResume05-26 00:19:22.860 3114-3114/com.lv.lifecycledemo E/MainActivity: onSaveInstanceState05-26 00:19:22.860 3114-3114/com.lv.lifecycledemo E/MainActivity: onStop
先完整走完第一个Activity的onCreate、onStart和onResume,onResume执行完之后发现不需要与用户进行交互(因为在onCreate中已经启动了一个新的Activity),就会执行第一个Activity的onPause方法。这段代码可以在ActivityThread的handleLaunchActivity
方法中找到。
// ActivityThreadprivate void handleLaunchActivity(ActivityClientRecord r, Intent customIntent) { ... Activity a = performLaunchActivity(r, customIntent); if (a != null) { ... handleResumeActivity(r.token, false, r.isForward, !r.activity.mFinished && !r.startsNotResumed); if (!r.activity.mFinished && r.startsNotResumed) { try { r.activity.mCalled = false; mInstrumentation.callActivityOnPause(r.activity); } ... } ... } ...}
在第一个Activity暂停之后,就会执行第二个Activity的onCreate、onStart和onResume。这个时候,如果第二个Activity完全遮住了第一个,就会导致第一个Activity不可见,所以会接着调用第一个Activity的onSaveInstanceState和onStop方法。(因为第一个Activity不可见而变得容易被系统回收,所以会先调用一下onSaveInstanceState方法。)关于onSaveInstanceState的调用时机,Android官方文档有这么一句话。
Android calls onSaveInstanceState() before the activity becomes vulnerable to being destroyed by the system, but does not bother calling it when the instance is actually being destroyed by a user action (such as pressing the BACK key)
参考onSaveInstanceState和onRestoreInstanceState触发的时机
- Activity的onCreate中启动新的Activity时生命周期
- Activity 中 的 onCreate
- 启动新的Activity
- activity中oncreate的参数的意义
- android线程中启动新的activity
- android 中activity的启动模式是singleTask时清除activity的栈顶activity的生命周期小计
- Activity生命周期,启动Activity,以及Activity之间数据的传递
- 关于Fragment.onCreate()中引用Activity.onCreate()创建的对象时的一个异常
- Android应用开发(二):Activity生命周期剖析以及如何启动新的Activity或网页
- startActivity方法启动一个新的activity时怎么让新的activity在另一个新的 task中
- 在Activity中onCreate方法里面获取空间宽度和高度的新姿势
- Activity生命周期:onCreate onStart onResume onPause onStop onDestory (1) 启动Activity: onCreate onStart onR
- 简述Android中Activity的启动(onCreate方法的调用)
- Android Activity的onCreate()函数
- 为什么启动Activity都是写的super.onCreate
- Android中Activity的生命周期
- Android中Activity的生命周期
- Android中Activity的生命周期
- JDBC连接MySQL步骤
- php preg_match_all函数笔记
- C++作业6
- JS封装简单后代选择器
- C++第六次作业
- Activity的onCreate中启动新的Activity时生命周期
- EffecitveJava 第二章
- POJ 1845 Sumdiv(逆元、分治)【真心好题啊=_=】
- LeetCode 044 Wildcard Matching
- 【Ionic】Error: failed to fetch platform android
- DSM: 依赖结构矩阵
- eclipse建maven web项目运行没有run as server
- 1039. Course List for Student (25)
- 数据挖掘之 时间序列分析