美文网首页
2019-07-10 Activity的生命周期以及启动模式

2019-07-10 Activity的生命周期以及启动模式

作者: 天宇流星 | 来源:发表于2019-07-10 18:23 被阅读0次


1.生命周期

A  -->B-->A

2.下拉通知栏对Activity的生命周期没有影响。

经过测试不难发现,在Activity中弹出AlertDialog、Toast时,Activity的onPause()并没有调用;

查看AlertDialog和Toast的源码,可以发现它们显示的原理,都是通过WindowManager.addView()来显示的。也就是说,AlertDialog和Toast可以看做是当前Activity的一部分View,当然也不会对Activity的生命周期构成影响。

因此,onPause()是否调用的关键就是,是否有另一个Activity参与进来了。

而网上流传甚广的onPause()和onStop()调用中提到的“遮挡”,应该修正为“被Activity遮挡”

在以下特殊的情况下,onPause()会被调用:

1.自定义dialog继承自Activity

2.新启动的Activity主题设置为 android:theme=@android:style/Theme.Dialog

Android启动模式具体解释

1. Standard 标准模式

说明: Android创建Activity时的默认模式,假设没有为Activity设置启动模式的话,默觉得标准模式。每次启动一个Activity都会又一次创建一个新的实例入栈,无论这个实例是否存在。

2. SingleTop 栈顶复用模式

说明:分两种处理情况:须要创建的Activity已经处于栈顶时,此时会直接复用栈顶的Activity。不会再创建新的Activity;若须要创建的Activity不处于栈顶,此时会又一次创建一个新的Activity入栈,同Standard模式一样。

生命周期:若情况一中栈顶的Activity被直接复用时,它的onCreate、onStart不会被系统调用,由于它并没有发生改变。可是一个新的方法 onNewIntent会被回调(Activity被正常创建时不会回调此方法)。

3. SingleTask 栈内复用模式

说明:若须要创建的Activity已经处于栈中时,此时不会创建新的Activity,而是将存在栈中的Activity上面的其他Activity所有销毁,使它成为栈顶。

生命周期:同SingleTop 模式中的情况一同样。仅仅会又一次回调Activity中的 onNewIntent方法

4. SingleInstance 单实例模式

说明: SingleInstance比較特殊,是全局单例模式,是一种加强的SingleTask模式。它除了具有它所有特性外,还加强了一点:具有此模式的Activity仅仅能单独位于一个任务栈中。

这个经常使用于系统中的应用,比如Launch、锁屏键的应用等等,整个系统中仅仅有一个!所以在我们的应用中一般不会用到。了解就可以。

举例:比方 A Activity是该模式,启动A后。系统会为它创建一个单独的任务栈,由于栈内复用的特性。兴许的请求均不会创建新的Activity,除非这个独特的任务栈被系统销毁。

Activity的一些常用标志位

FLAG_ACTIVITY_NEW_TASK

作用是为Activity指定singleTask启动模式

FLAG_ACTIVITY_SINGLE_TOP

作用是为Activity指定singleTop启动模式

FLAG_ACTIVITY_CLEAR_TOP

具有此标志位的Activity启动时,位于其之上的Activity都要出栈。如果Activity的启动模式为standard模式,那么它连同它之上的Activity都要出栈,系统会创建新的Activity实例并放入栈顶。

Window、Activity和View之间的关系

Activity:就是一个运用程序的承载体,只是界面的承载体,不是界面。用户能够在上面绘制界面(activity

本身不会绘制界面)但是它提供一些用户处理api时间,还有程序的生命周期。

window:首先它是一个抽象类,实现的子类是phoneWindow,在phoneWindow子类中有一个decorView,可以理解成跟视图,

rootView:所以view的二叉树视图都是addView到rootView中去。

View:在android中的View视图就是一颗二叉树,一层嵌套一层,window直接把这个视图加入到decorview中去。

Service使用全面介绍
https://www.jianshu.com/p/e04c4239b07e

远程Service  https://www.jianshu.com/p/34326751b2c6

相关文章

网友评论

      本文标题:2019-07-10 Activity的生命周期以及启动模式

      本文链接:https://www.haomeiwen.com/subject/gbghkctx.html