Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android-Activity的启动模式 #6

Open
jeffrey1995 opened this issue Jun 28, 2016 · 0 comments
Open

Android-Activity的启动模式 #6

jeffrey1995 opened this issue Jun 28, 2016 · 0 comments

Comments

@jeffrey1995
Copy link
Owner

jeffrey1995 commented Jun 28, 2016

通常在实际项目中我们应该根据特定的需求为每个活动指定合适的启动模式。
启动模式一共有四种,分别是standard、singleTop、singleTask、singleInstance。可以在AndroidManifest.xml中通过给标签指定android:laumchMode属性来选择启动模式。下面我将逐个介绍。

1. standard

stand是活动默认的启动模式,在不进行显式指定的情况下,所有活动都会自动使用这种启动模式。在stand模式下,每当启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置。每次启动都会创建该活动的一个新的实例。

2. singleTop

该模式下,如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。

3. singleTask

该模式下,每次启动该活动时系统首先会在返回栈中检查是否存在该活动的实例,如果发现已经存在则直接使用该实例,并把这个活动之上的所有活动统统出栈,如果没有发现就会创建一个新的活动实例。

4. singleInstance

四种启动模式中最为特殊也最复杂的一个,指定为singleInstance模式的活动会启用一个新的返回栈来管理这个活动。
应用场景
假设我们的程序中有一个活动是允许其他程序调用的,如果我们想实现其他程序和我们的程序可以共享这个活动的实例,就可以使用这种模式。在这种模式下会有一个单独的返回栈来管理这个活动,不管是哪个应用程序来访问这个活动,都共用的同一个返回栈,也就解决了共享活动实例的问题。

@jeffrey1995 jeffrey1995 changed the title Android-活动的启动模式 Android-Activity的启动模式 Jun 30, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant