`

通过代码设置Activity的Launch Mode

阅读更多
在AndroidManifest.xml里,可以设置每个Activity的启动模式(Launch Mode),但是如果希望动态的切换就需要在代码中添加相应的flag来实现。

通过调查发现,代码中添加下列flag就可以近似的实现不同的启动模式

1. Standard
// 标准启动模式,不用添加任何flag

2. Single Top
会触发onNewIntent()函数
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

3. Single Task
不会触发onNewIntent()函数,还在调查中。。。
败给google了,一定要把launch mode设成single top才会触发onNewIntent()函数。
不然就只会先finish(),再onCreate()了。
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

4. Single Instance
会触发onNewIntent()函数
i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);

当然这样添加了flag后,只能保证在当前工程内Activity的行为是正确的,跨工程的没有尝试。
最后上传整个工程。
分享到:
评论

相关推荐

    launch mode 测试demo

    在测试DEMO中,开发者可能会为每个`launch mode`创建一个Activity,通过点击按钮来启动它们,观察不同模式下Activity的行为差异。例如,启动Activity后,按设备返回键会看到什么结果?从另一个应用启动相同的...

    Android的Activity的Launch模式之SingleTask案例

    Activity的启动模式(Launch Mode)是Android系统管理Activity实例的重要机制,它可以决定如何创建和管理Activity的生命周期。本篇文章将深入探讨`SingleTask`启动模式,并通过实际案例源码进行解析。 `SingleTask`...

    Launch-mode-and-Intent-Flags.doc.zip_doc

    Activity的Launch mode和Intent的setFlags

    activity切换

    通过设置启动模式(launch mode),可以控制Activity的实例化和栈的行为;还可以自定义过渡动画,使Activity切换更美观。 总的来说,Activity切换是Android开发的基础,理解并掌握其工作原理对于构建功能丰富的应用...

    模拟Activity进出栈.rar

    3. **启动模式(Launch Mode)**:Activity的启动模式可以设置为标准模式、单实例模式、单任务模式和单栈顶模式。这些模式影响Activity如何被添加到栈中以及如何处理回退操作。 - **标准模式**(standard):默认...

    Android Activity设置相同的action进行判断源码.rar

    2. **启动模式(Launch Mode)**:Activity的启动模式对决定哪个Activity被启动有着重大影响。有四种启动模式:standard、singleTop、singleTask和singleInstance。默认是standard模式,每次启动都会创建新的实例。...

    android studio 几种基本Activity效果的实现

    通过在Activity主题中设置`android:theme="@android:style/Theme.NoTitleBar.Fullscreen"`,可以实现全屏效果。在API 19及以上版本,可以使用`SYSTEM_UI_FLAG_FULLSCREEN`标志实现隐藏系统UI。 7. **透明状态栏...

    模拟Activity进出栈.zip

    Activity的进出栈行为可以通过不同的启动模式(Launch Mode)进行控制。默认情况下,每个启动的Activity都会创建一个新的实例并压栈,但如果设置了“singleTop”模式,当新的Intent尝试启动已经在栈顶的Activity时,...

    LaunchMode.apk

    一个demo让你彻底了解Activity launch mode

    android activity研究

    本文将深入探讨 `Activity` 的基本概念及其配置参数,并对 `Intent`、`TaskAffinity` 和 `Launch Mode` 进行详解。 #### 二、Activity 基础概念 **1. Activity 定义:** - **定义**:`Activity` 可以理解为一个...

    安卓Android源码——模拟Activity进出栈.zip

    7. **Task Affinity和Launch Mode**:在AndroidManifest.xml中,每个Activity可以指定其Task Affinity,影响其所在的Task。同时,Activity的launchMode属性决定了启动模式,如标准模式、单实例模式、单任务模式和单...

    启动模式示例代码

    在Android应用开发中,启动模式(Launch Mode)是关乎应用程序组件(如Activity)如何启动和重用的关键概念。它决定了当用户点击应用图标或者通过其他方式启动Activity时,系统如何处理这个请求。启动模式会影响到...

    Activity代理框架AyoActivityNoManifest.zip

    lanuchMode是选择Activity的启动模式,也就是选择模板:ActivityAttacher.LAUNCH_MODE_STANDARDActivityAttacher.LAUNCH_MODE_SINGLE_TASKActivityAttacher.LAUNCH_MODE_SINGLE_TOPActivityAttacher.LAUNCH_MODE_...

    切屏之后需要退出两次的activity

    - 了解并正确使用启动模式(Launch Mode),避免产生不必要的`Activity`实例。 - 如果使用了自定义的导航逻辑,应确保在`onBackPressed()`中正确处理回退行为,比如在用户确认后调用`finish()`。 - 使用`<activity>`...

    启动模式实例

    在Android应用开发中,启动模式(Launch Mode)是关乎应用程序组件(如Activity)如何被启动和实例化的重要概念。理解并熟练运用启动模式,能够帮助开发者优化应用的行为,避免资源浪费,提高用户体验。本实例将深入...

    启动模式生命周期测试demo

    在Android应用开发中,启动模式(Launch Mode)是关乎应用程序组件(特别是Activity)生命周期的关键概念。它决定了当用户启动一个Activity或者系统需要重新创建Activity时,如何管理和实例化Activity的实例。通过...

    XFragment:单Activity和多Fragment容器

    并且也支持特地的fragemnt* 支持fragment跳转的launch mode,目前支持standard,singleTop和singleTask,并且模拟了类似activity的onNewIntent()* 支持类似activity的onActivityResult()的回调,fragment采用了监听...

    android启动模式学习例子

    在Android应用开发中,启动模式(Launch Mode)是关乎应用程序组件(如Activity、Service)如何启动和重用的重要概念。这个“android启动模式学习例子”旨在帮助开发者理解四种不同的启动模式,分别是:standard、...

    ActivityDemo.7z

    启动模式(Launch Mode)和Activity生命周期是理解Android应用行为的关键概念。本示例"ActivityDemo.7z"是一个用于演示Activity不同启动模式及其生命周期影响的项目。 首先,让我们深入了解一下Android中的四种启动...

Global site tag (gtag.js) - Google Analytics