首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解android:launchMode

了解android:launchMode
EN

Stack Overflow用户
提问于 2014-02-24 14:42:44
回答 2查看 2.7K关注 0票数 3

我真的对安卓系统中不同的activity launchModes感到困惑。我知道这与活动堆栈有关,这对我来说也不是很清楚。如果能用一个简单的用例简要解释一下每个launchMode,我会很高兴。

EN

回答 2

Stack Overflow用户

发布于 2014-02-24 14:48:32

android:launchMode是活动应该如何启动的指令θ。在intent对象中有四种带有活动标志(FLAG_ACTIVITY_*常量)的模式,用于确定在调用activity来处理Intent时应该发生什么。它们如下:

  1. "standard“-the默认情况下,系统始终在目标任务中创建活动的新实例,并将意图传送到该实例。

  1. "singleTop“-表示活动将只创建一次,并位于顶部。如果目标任务顶部已存在活动的实例,系统将通过调用其onNewIntent()方法将意图路由到该实例,而不是创建活动的新实例。

  1. "singleTask“-单个任务的独占意味着没有多个实例。系统在新任务的根部创建活动,并将意图路由到该活动。但是,如果活动的实例已经存在,系统将通过调用其onNewIntent()方法将意图路由到现有实例,而不是创建新的实例。

  1. "singleInstance“-没有多个实例,与"singleTask”相同,只是系统不会在持有实例的任务中启动任何其他活动。该活动始终是其任务的唯一成员。

标准默认的模式是“”。

有关更多信息,请访问

http://www.slideshare.net/JAX_London/android-android-activity-launch-modes-and-tasks-gonalo-silva

http://blog.akquinet.de/2010/02/17/android-activites-and-tasks-series-an-introduction-to-androids-ui-component-model/

http://developer.android.com/guide/topics/manifest/activity-element.html

http://www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode

票数 8
EN

Stack Overflow用户

发布于 2019-09-03 20:36:37

代码语言:javascript
复制
SingleTask and SingleInstance activities can only begin a task. They are always at the 
root of the activity stack. Moreover, the device can hold only one instance of the 
activity at a time — only one such task.

More Details

代码语言:javascript
复制
<application
    android:name=".MyApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity android:name=".Standard">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".SingleTop"
        android:launchMode="singleTop" />

    <activity
        android:name=".SingleTask"
        android:launchMode="singleTask"
        android:taskAffinity="" />

    <activity
        android:name=".SingleInstance"
        android:launchMode="singleInstance" />      <!--//TODO launchMode -->

</application>

<uses-permission android:name="android.permission.GET_TASKS" />

Sample Demo

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21980641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档