【起航计划 011】2015 起航计划 Android APIDemo的魔鬼步伐 10 App->Activity->Reorder Activities 后退栈 Intent FLAG

Reorder Activities 示例有四个相关的Activitives: ReorderOnLaunch, ReorderTwo,ReorderThree, ReorderFour。其中ReorderOnLaunch为主Activity,ReorderOnLaunch启动ReorderTwo ,ReorderTwo启动 ReorderThree,ReorderThree启动 ReorderFour。 这时在Activity的”back stack”有如下状态:

ReorderFour 想再启动ReorderTwo, 这时用两种实现方法,一是在 RecordFour之上再启动一个新的 ReorderTwo ,这是startActivity的缺省行为。这是因为在AndroidManifest.xml:

<activity android:name=”.app.ReorderTwo” />
<activity android:name=”.app.ReorderThree” />
<activity android:name=”.app.ReorderFour” />

.app.RecordTwo没有定义任何这个Intent的Flag。 比如有 FLAG_ACTIVITY_NEW_TASK,FLAG_ACTIVITY_CLEAR_TOP,FLAG_ACTIVITY_SINGLE_TOP,在这些情况下 Android将根据不同Flag设置来决定启动RecordTwo的方法,具体在后面的例子会有介绍。

在Reorder Activities例子中,是将“Back Stack”中的ReorderTwo移到栈顶,方法是在启动Intent时设置 Intent.FLAG_ACTIVITY_REORDER_TO_FRONT。如果设置了 FLAG_ACTIVITY_REORDER_TO_FRONT表示将“Back Stack”中指定的Activity移动到栈顶。

    Intent intent = new Intent(ReorderFour.this, ReorderTwo.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);  

此时栈如下图所示:

时间: 2024-10-08 18:45:24

【起航计划 011】2015 起航计划 Android APIDemo的魔鬼步伐 10 App->Activity->Reorder Activities 后退栈 Intent FLAG的相关文章

【起航计划 007】2015 起航计划 Android APIDemo的魔鬼步伐 06 App-&gt;Activity-&gt;Forwarding Activity启动另外一个Activity finish()方法

Android应用可以包含多个Activity,某个Activity可以启动另外的Activity. 这些Activity采用栈结构来管理,新打开的Activity叠放在当前的Activity之上,当前的Activity停止运行. 当一个Activity停止运行时,Android系统保留其停止前的状态,当用户按下“Back”按键时,栈最上的Activity从栈顶退栈,之前的Activity移到栈顶,显示在屏幕上: 有些时候,当一个Activity启动新的Activity后,不希望把当前Activ

【起航计划 002】2015 起航计划 Android APIDemo的魔鬼步伐 01

本文链接:[起航计划 002]2015 起航计划 Android APIDemo的魔鬼步伐 01 参考链接:http://blog.csdn.net/column/details/mapdigitapidemos.html?&page=12

【起航计划 031】2015 起航计划 Android APIDemo的魔鬼步伐 30 App-&gt;Preferences-&gt;Advanced preferences 自定义preference OnPreferenceChangeListener

前篇文章Android ApiDemo示例解析(31):App->Preferences->Launching preferences 中用到了Advanced preferences 中定义的AdvancedPreferences. 本篇具体介绍AdvancedPreferences, 这个例子称为Advanced ,是因为它涉及到了自定义Preference, 并在一个工作线程中刷新某个Preference的值. Preference 为显示在PreferenceActivity (一般以

【起航计划 020】2015 起航计划 Android APIDemo的魔鬼步伐 19 App-&gt;Dialog Dialog样式

这个例子的主Activity定义在AlertDialogSamples.java 主要用来介绍类AlertDialog的用法,AlertDialog提供的功能是多样的: 显示消息给用户,并可提供一到三个按钮(OK, Cancel ,Yes ,No)用于选择或是显示警告. 显示一个列表以供用户选择,列表中可以是Radio Button  (单选),Check button (多选) 显示文本框来接受用户输入等. 创建AlertDialog一般是通过AlertDialog.Builder来构造: A

【起航计划 012】2015 起航计划 Android APIDemo的魔鬼步伐 11 App-&gt;Activity-&gt;Save &amp; Restore State onSaveInstanceState onRestoreInstanceState

Save & Restore State与之前的例子Android ApiDemo示例解析(9):App->Activity->Persistent State 实现的UI类似,但功能和实现方法稍有不同. (9)是通过Shared Preferences 和 Activity 的onPause() ,和onResume()来保持UI中 EditText 的值. 本例是通过onSaveInstanceState(Bundle savedBundle) 来实现保持UI状态. 和onPaus

【起航计划 006】2015 起航计划 Android APIDemo的魔鬼步伐 05 App-&gt;Activity-&gt;Custom Title 自定义标题栏

Android UI缺省的标题栏由android:label 定义,显示在屏幕左上角,Android允许Activity自定义标题栏,使用自定义Layout重新设置标题栏,比如实现Windows Mobile 风格的标题栏. App->Activity->Custom Title 重新将Activity标题栏定义为左右两个文本框,类CustomTitle,其Layout定义R.layout.custom_title_1如下,为一左一右两个文本框: <!-- Demonstrates ho

【起航计划 022】2015 起航计划 Android APIDemo的魔鬼步伐 21 App-&gt;Launcher Shortcuts 为某个非主Activity在Home Screen上建立一个快捷方式

Android 操作系统对于<intent-filter>含有下列属性的Activity会在应用程序管理器(Launcher)显示一项,一般这个Activity对应于某个应用的主Activity. <action android:name=”android.intent.action.MAIN” /> <category android:name=”android.intent.category.LAUNCHER” /> 此外,如果用户想在设备的Home Screen上

【起航计划 034】2015 起航计划 Android APIDemo的魔鬼步伐 33 App-&gt;Service-&gt;Local Service Binding 绑定服务 ServiceConnection Binder

本例和下列Local Service Controller 的Activity代码都定义在LocalServiceActivities.Java 中,作为LocalServiceActivities 内部类实现的. 调用的Service为LocalService. LocalService既可以做为“Started” Service,也可以做为”Bound” Service. 一个“Bound” Service 可以通过Client/Service模式提供Service.它运行应用程序组件(比如

【起航计划 009】2015 起航计划 Android APIDemo的魔鬼步伐 08 App-&gt;Activity-&gt;QuickContactsDemo 联系人 ResourceCursorAdapter使用 QuickContactBadge使用

QuickContactsDemo示例介绍了如何使用Content Provider来访问Android系统的Contacts 数据库. Content Provider为不同应用之间共享数据提供了统一的接口,通过对底层数据源的抽象,Content Provider实现了应用程序代码和数据层分离. Android平台对大部分的系统数据库都提供了对应的Content Provider接口: Browser: 读取和修改Bookmark,Browser history或Web Searches. C