安卓:Activity:Tasks and Back Stack

【Activiti】activiti 手动回退一个结束的流程 文章目录1. 引言2. 准备3. 回退3.1 先用sql试验回退activiti表3.2 代码实现回退activiti流程 1. 引言 最近有一个流程回退的任务,于是就上网搜,发现流程回退大都是针对没有结束的流程回退到上一步,而且给出的方法大都如吻末给出的相关链接中操作方式,试了试好像都不太好使。 于是就参照着网上的方法,顺带看接口看源码,试了试感觉总是不够灵活,还容易出错。 后来想了想,其实他流... 阅读详情

Tasks and Back Stack 任务和回退堆栈


快速预览

  • 所有的活动(activities)属于任务
  • 任务是包含活动的顺序集合
  • 任务能够移到后台,并保持其持有的活动的状态和顺序,使得用户在其他任务中不至于丢失他们的工作。

IN THIS DOCUMENT

  1. Saving Activity State
  2. Managing Tasks
    1. Defining launch modes
    2. Handling affinities
    3. Clearing the back stack
    4. Starting a task

ARTICLES

  1. Multitasking the Android Way

SEE ALSO

  1. Android Design: Navigation
  2. <activity> manifest element

   一个应用程序通常包含多个Activity。每个Activity都应当被设计成一种特定的功能,用户可以执行它,还可以通过它启动其他的Activity。例如,一个电子邮件的应用程序可能有一个Activity用于展现出新的电子邮件列表,当用户选择了一个电子邮件,就会打开一个新的Activity以查看该电子邮件。

    一个活动(Activity)甚至可以启动设备上的另外的一个应用程序的活动。例如,如果您的应用程序想要发送一个电子邮件,您可以定义一个意图(intent)来执行一个“发送”行动,其中包括一些数据,如电子邮件地址和消息。在另一个应用程序,一个Activity声明本身能处理这种意图,然后将自身打开。在这种情况下,intent是为了发送电子邮件,所以电子邮件应用该创建Activity启动器(如果多个活动支持相同的意图,那么系统让用户选择使用哪一个).当发送邮件后,你的Activity将会恢复,这就好像电子邮件的Activity是您的应用程序的一部分一样。即是这些Activity可能来自不同的应用,android系统通过将这些Activity保存在相同的任务栈来维持这种无缝的用户体验。

       任务(Task)是活动(Activity)的集合,而活动用于执行用户交互的关键工作。活动以打开的顺序被放入栈中。[注意,这个栈指的就是回退堆栈]

       一个设备的HOME屏是大多数任务栈的起点[就是应用程序列表或者桌面]。当用户触摸应用程序图标(或者在桌面上的快捷方式)时,该应用程序的任务就到达前台。如果该应用在任务栈中不存在(应用在近段时间内没有使用过)就会在任务栈中创建一个新的任务,并将该应用的“主”Activity放置在任务栈中作为根activity。


[译者:在开发程序的时候,经常在manifest中配置的↓,可理解为主activity]

action android:name="android.intent.action.MAIN"


    当前Activity启动另一个activity时,新的Activity推入堆栈的顶部并获得焦点。之前的Activity仍然在堆栈中,但已停止。当Activity停止时,系统会保留其用户界面的当前状态。当用户按下返回按钮时,当前Activity就会从堆栈的顶部弹出(当前的Activity就会被销毁),同时之前的一个Activity就会恢复(恢复到之前的UI界面)。 Activity在栈中的顺序永远不会改变,只会压入和弹出——被当前Activity启动时压入栈顶,用户用返回键离开时弹出。 这样,back stack 以“后进先出”的方式运行。图1 以时间线表的方式展示了多个Activity在Back stack中放入的顺序和机理。

Figure 1. 代表了新的activity添加到回退堆栈中,以及用户按下回退键后,当前activity被销毁,之前的activity被恢复。

如果用户继续点击回退按键,那么栈会不断弹出activity并展现之前的那一个,直到HOME屏幕(或者任务开始的第一个activity)。当所有的activity从任务中移除,这个任务也不复存在。

Figure 2. Two tasks: Task B receives user interaction in the foreground, while Task A is in the background, waiting to be resumed.

Figure 3. A single activity is instantiated multiple times.

任务是一个聚合的单位,当启用一个新任务或者通过HOME键回到主屏幕,它可被移动到后台。当Task处于后台时,里面所有的Activity都将停止,但是这个Task的回退堆栈(Back Stack)仍然完整保留(原文这里写错了,写成了Back task)在其它Task获得焦点期间,这个Task只是失去焦点而已,如图2所示。TASK可以回到前台,以便用户继续之前的操作。例如:当前Task(Task A)的栈中共有3个Activity,即当前显示的Activity背后有两个Activity。这时,用户按下Home键,然后从应用程序中启动一个新的应用。当 Home 屏幕出现时,Task A 进入后台.当新的应用启动时,系统会为它开启一个Task(Task B),其中放入新应用中的 activity。这个应用完成相应的交互后,用户再次返回 Home 屏幕,并选择了最初启动了 Task A 的应用。现在,Task A 进入前台——栈中的三个Activity仍然完好,位于最顶部的Activity 恢复运行。这时候,用户仍然可以切回 Task B,通过回到 Home 屏幕并选择相应图标即可(或者触摸并按住Home键调出最近Task列表并选中)。这便是 Android 多 task 的实例。

注意:多任务可以被放入后台。然而,一旦用户在同一时刻运行了太多的后台任务,系统可能会执行销毁后台activity来回收内存,导致activity的状态丢失。看章节Activity state.


因为回退栈中的后动永远不会被重排,如果你的应用程序允许用户多次启动一个activity,一个新的activity实例将会创建并放置到栈的顶部(而不是把之前那个移动到顶部)。这样的话,如果用户使用 Back按键,每个活动的实例将会以被打开的顺序展示。然而,如果你不希望一个实例被打开多次,你可以修改这些行为。如何做,请看章节Managing Tasks.


活动和任务的默认行为总结:

  • 当活动A启动了活动B,A将停止,但是系统保留了它的状态(例如滚动位置和文本进入的格式)。如果在活动B时,用户按下BACK按键,A将恢复其保存的状态。
  • 如果用户通过按HOME按键离开任务,当前的活动将会停止,并且它所属的活动也会进入后台。系统保留了任务中的每一个活动的状态。如果用户随后通过选择启动器(桌面)上的图标来恢复任务,任务回到前台,处于其栈顶部的活动将恢复。
  • 如果用户按BACK按键,当前的活动将会从栈中弹出并被销毁。处于栈中的之前的活动将会恢复。当活动被销毁,系统不会保存活动的状态。
  • 活动可以被实例化多次,即使来自不同的任务。

Navigation Design

For more about how app navigation works on Android, read Android Design's Navigation guide.

Saving Activity State 保存活动状态


        如前所述,当Activity停止时,其系统默认的行为会保存状态。这就意味着当用户通过导航返回之前的活动时,它看起来和离开时没什么两样。然而,你能够——并且应该积极地通过回调函数来保存它的状态,倘若活动被销毁并被重新创建。

        当系统停止你的一个活动(例如启动了一个新的活动,或者活动移动到后台),系统也许会销毁你的活动,并回收其占用的系统内存。当这发生时,你的活动状态的信息将会丢失。倘若这发生了,系统仍然知道这个活动在回退栈上占据了一个位置,当活动被带到回退堆栈的顶部时,系统必须重新创造它recreate(而不是恢复它resume)。为了避免丢失用户的工作,你应该积极的保存它,通过实现你的活动中的onSaveInstanceState()回调方法。

请参阅Activities文档。

Managing Tasks  管理任务


安卓管理任务和回退栈的方式,已经在前文进行了描述——通过“后入先出”的方式将活动连续的放入回退栈中——它在绝大多数应用程序中运行良好,你不必关心你的活动如何和你的任务结合及活动怎样存在于回退栈中。然而,你也许决定终止正常的行为。或许你想要你的应用程序以新任务开启你的活动,或者,当你开启活动时,你想要使用之前的已存在的活动实例(而不是重新在回退栈的顶部创建一个),或者,你想要当用户离开任务时,回退栈清除除了根活动外所有的活动。

你可以做的更多,使用 位于配置文件中的<activity>标签元素,以及设置传递到startActivity()方法中的intent的标识位。

 <activity> 中主要可使用的属性包含:

intent标记中可使用的: 

在后面的章节,你将会看到如何使用它们,及它们将会怎样作用于你的活动及回退栈的行为。

注意:大部分应用程序不应当改变默认的活动与任务的行为。如果你确定有必要修改默认行为,谨慎的使用,你需要测试可用性——自桌面启用,从其他活动导航到指定活动,任务中回退到达。确保这些测试被执行,以免与用户的行为预期发生冲突。

Defining launch modes 定义启动模式

启动模式允许你定义新的活动的实例与当前任务的结合关系。你可以使用两中方式来定义:

  • Using the manifest file 使用配置文件

    当你在配置文件中声明你的活动,你能够指定活动启动时与其集合的任务之间的关系。

  • Using Intent flags 使用Intent标记

    当你调用startActivity(),你可以使用一个含有标记的 Intent。它可以声明启动活动的方式。

举个例子,如果A启动B,那么B可以在配置文件中定义它应该如何与当前任务相结合,A也能够请求B该如何启动。如果两个活动都定义了B应该如何结合任务,那么A的请求(定义在intent中)应该遵从B的请求(定义在配置文件中)。

注意:一些启动模式在配置文件中有定义,但是在intent 标记中没有,反之亦然。

Using the manifest file 使用配置文件

在配置文件中,使用<activity> 元素中的launchMode属性来定义你的活动如何结合当前任务。

启动模式(launchMode)属性可被指定下面这些值:

"standard"  (the default mode) 标准(默认模式)
默认。系统在任务中创建一个新的活动实例,这个任务指的是intent启动活动所属的那个活动。一个活动可以被启动多次,每个实例也可以属于不同的任务,每个任务可以拥有多个实例。
"singleTop" 单一顶部
如果活动实例已经存在于当前任务的顶部,那么系统调用intent启动活动时,仅仅是调用活动的onNewIntent()方法,而不是重新创建一个活动的实例。活动可以被初始化多次,每个实例可以属于不同的任务,一个任务可以有多个活动实例(除了在其顶部有一个实例时,不创建新的实例)。

举个例子,假设任务的回退栈中有A,B,C,D四个活动,其中A是根活动,D在顶部。如果D使用默认的启动模式,则向上面添加一个新的D的实例,回退栈变为A-B-C-D-D。然而,如果是“singleTop”,那么Intent中如果是D,将会执行已存在的D将被调用回调函数 ,而不会创建新的实例,所以整个回退栈中将是A-B-C-D。如果是B,则会添加一个新的实例在D上面,即使启动模式是“singleTop”。

注意:当新的实例被创建时,用户点击BACK将回到之前的活动。但当一个活动实例处理新的意图时,在活动进入方法onNewIntent()前,用户不能按回退按键回到之前的状态。

"singleTask" 单一任务
系统创建一个新的任务,并且将活动的实例作为这个新的任务的根活动。然而,如果活动实例已经存在在一个独立的任务中,意图通过调用 活动的 onNewIntent()方法,系统跳转到已存在的实例上,而不是重新创建一个实例。同一时刻一个活动只能存在一次。

注意:尽管活动可以启用新任务,但是回退按键仍然可以回到用户之前的活动。

"singleInstance" 单一实例
与“单一任务”相似,除了系统不再创建任务来持有活动。因为活动是任务中唯一的成员;任何活动以这种方式启动都会在独立的任务中打开。

     作为另一个样例,安卓浏览器应用程序声明网络浏览器活动应该以被自身拥有的任务打开——通过在配置文件(manifest.xml)中指定 <activity>元素的启动模式为singleTask来实现。那就意味着如果你的应用程序发出一个打开安卓浏览器的intent,它不会将浏览器的活动放在你的应用程序的活动所处的那个任务中。或者可能是启动一个新的浏览器任务,或者可能从后台获得一个已经启动的——仅仅是把它从后台带到了前台。

    无论活动在一个新的任务中启动,还是与启动这个活动相同的活动中启动,回退按键总是回到用户之前的那个活动中,然而,如果活动以指定的【单一任务】模式启动,如果启动的活动存在于一个处于后台的任务中,那么整个任务都将回到前台。在这一点上,回退栈包含所有的活动都将带回前台,并置于回退栈的顶部。图4阐述了这种情节。

Figure 4. A representation of how an activity with launch mode "singleTask" is added to the back stack. If the activity is already a part of a background task with its own back stack, then the entire back stack also comes forward, on top of the current task.

请查阅manifest文件,察看<activity>元素文档,那儿有关于启动模式的属性和可接受的值。

注意:启动模式属性能够被启动活动的意图所包含的标记重写,下个章节我们讨论这个问题

Using Intent flags 使用意图标记

当启动一个活动,你可以通过设定标记修改默认的活动结合性,这些标记将传递给startActivity()。这些标记用户修改默认的行为:

FLAG_ACTIVITY_NEW_TASK  标记—活动-新任务
在新的任务中开启一个活动。如果任务已经运行了你准备启动的活动,那么任务只会将其带到前台,并使得活动通过 onNewIntent() 接收这个新的意图。

这就相当于在启动模式中设定值为"singleTask"。

FLAG_ACTIVITY_SINGLE_TOP 标记-活动-单一顶部
如果被启动的活动是当前活动(处于回退堆栈的顶部),那么已存在的实例接收一个 onNewIntent() 的调用,而不是创建一个新的活动的实例。

这与之前讨论的启动模式值为"singleTop"的情形一样.

FLAG_ACTIVITY_CLEAR_TOP

如果活动已经运行在当前的任务中,那么并不会新建一个活动的实例,而是要启动的摧毁所有其顶部的活动,然后通过onNewIntent()恢复这个实例(现在它处于顶部了)。

启动模式没有对应的值。

经常与FLAG_ACTIVITY_NEW_TASK结合使用。当一同使用时,这些标记定位一个在其他任务中已存在的活动,并放置到其可以接收intent的位置。

注意:如果活动的启动模式被设计为“标准的”,它将不会移除栈中的活动,且新的实例将要处理接收的intent。因为当模式是“标准的”时,新的实例总是要在新的intent中创建。

Handling affinities 处理结合性

结合性是用于标识活动偏好的任务。默认情况下,来自同一应用程序的所有的活动与其他活动具有相同的结合性。也就是说,默认情况下,同一应用程序的所有的活动处于同一任务中。然而,你可以修改活动的默认结合性。定义在不同应用程序中的活动可以分享一个结合性,或者定义在同一应用程序的活动可以被指派不同的任务结合性。

你可以通过<activity> 元素的taskAffinity属性给任何活动赋予结合性。

两种情况下结合性可用:

  • 当启动一个活动(activity)的意图(intent)包含FLAG_ACTIVITY_NEW_TASK标记

    默认情况下一个新的活动,通过调用startActivity()启动自任务中的活动。它将被启动的活动压入启动者的任务中。然而,如果传递startActivity()的意图中包含FLAG_ACTIVITY_NEW_TASK标记,系统将会为这个活动寻找一个新的任务作为它的新家。然而通常情况下,这是没有必要的。

    如果标记导致启动了一个新的任务,并且用户通过按HOME键返回,这就必须有让用户导航返回到任务的方法了。一些实体(例如通知管理)总是在外部任务中启动活动,而从不在自己的空间中,所以它们在intent中设置标记FLAG_ACTIVITY_NEW_TASK 。如果你拥有一个能够被可能拥有此标记的外部实体调起的活动,注意用户可能有独立的方法回到任务启动的地方,例如启动器的图标。

  • 当活动的allowTaskReparenting属性设定为“true”

    在这种情况下,当任务到达前台时,活动能够从之前附属的任务中移动出来

    举个例子,假设一个报告所选城市天气状况的活动,它作为旅行应用程序的一部分。它与其他的活动处于同一应用程序中,具有相同的结合性(默认应用程序结合性),它加上这个标记允许“更换父母”。当你的一个活动开启这个天气报告活动,它最初属于启动的那个任务。然而,当旅行的应用程序任务来到前台后,这个天气报告活动将重新分配到旅行的那个任务中并展示出来。

提示:如果.apk文件包含不止一个用户视图点,你可能需要这个属性。

Clearing the back stack 清除回退堆栈

如果用户长时间离开一个任务,系统清除除了根活动以外的任务。当用户再次返回到任务时,只有根活动被保存了。系统之所以是这样的行为,是因为用户倾向放弃那些他们之前离开执行新任务后返回后的任务。

这里有一些活动属性可以修改这个行为:

alwaysRetainTaskState  总是保存任务状态

在根活动中,如果的这个属性设为 "true",默认行为也没有改变。 即使很长时间,栈保存所有的活动。
clearTaskOnLaunch  清除任务到启动

在根活动中,如果这个状态被设为“ true”,当用户离开任务后又返回时,栈将清除到只剩下根活动。换言之,它与 alwaysRetainTaskState是刚好相反的。用户总是返回任务原始的状态,即使只离开了一小会儿。
finishOnTaskLaunch 完结自任务启动

这与 clearTaskOnLaunch类似,但仅仅是操作单个活动,而不是整个任务。它也可能触发活动离开,包含根活动。当它被设定为“true”,活动仅仅在当前阶段得以保存。如果用户离开,再返回,它就不再存在。

Starting a task 开始一个任务

通过设置意图过滤器,以"android.intent.action.MAIN"为活动,以"android.intent.category.LAUNCHER"为类别;你可以启动一个活动作为一个任务的入口。举例如下:

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

这个的过滤规则导致会在应用程序“启动器”上面显示一个图标,给用户一个启动活动或者回到任务的方法。

第二能力是非常重要的。用户必须有能力离开任务,然后使用启动器返回它。因为这个原因,两种启动模式"singleTask"和"singleInstance"应该用于当活动过滤器设定为ACTION_MAIN和CATEGORY_LAUNCHER。想象一下,如果过滤器丢失了会怎么样:一个意图启动了一个 活动,开启了一个新任务,用户花费了大量的时间在这个任务上。用户点击了HOME按钮。任务被放入后台,且不可见。用户也没有办法返回这个任务,因为它不再启动器上呈现。

stack(栈)在android 中的运用 stack(栈)在android 中的运用:自定义了一个Activity栈管理Activity 立即下载

相关推荐

安卓应用锁开发实战:如何通过拦截Activity启动实现密码验证(附完整代码)

本文深入探讨了在安卓系统中开发应用锁功能的两种实战方案:通过修改ActivityStarter源码或实现IActivityController接口来拦截Activity启动流程,从而实现启动前的密码验证。文章详细对比了两种方案的技术选型、实现细节与适用场景,并提供了处理隐式Intent、验证状态管理等核心问题的完整代码,为开发系统级安全功能提供了实用指南。

tcp8optimizer的博客 456

Android Activity堆栈详解

今天带着个人疑问与实际项目开发中遇到的问题,跟大家一起学习下安卓活动与任务堆栈方面的知识,直入正题:相信大家都碰到过并没有过多的操作内存但应用自动强制退出或OOM的吧?这个问题也是我本人在面试过程中被人问到的,顺带学习并记录在博客中,跟大家交流,共同提高改进…说到堆栈,第一反应是跟我没关系,操作不到这个吧?其实错了,请大家继续看下文:         如果你的应用中涉及到的东西比较耗内存的话,比

laigebaozi的博客 6819

I2C总线原理及总线信号的实现

I2C总线是一种多主机总线,连接IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,I2C也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;I2C总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器;主要用于近距离(抗干扰能力稍弱),低速的芯片之间的通信(传输视频,带宽

YLG_lin的博客 3941

Android Tasks、ActivityStack和Activity

最近又在开展一些Android的开发工作,出现了在个别场景下发生的Activity切换不符合预期的情况,于是来温习一下Android的Tasks、ActivityStack、Activity,以及影响到他们的几个重要参数launchMode、taskAffinity、IntentFlags   应用程序的进程与线程 从应用程序的角度来看,应用程序一般定义了应用对应的进程,以及上面运行着的一系...

vshuang的专栏 3621

F5高可用HA配置详情

F5 HA详细配置

weixin_45843944的博客 3022

FreeRTOS项目:智能手表(1);

从 “最底层启动”→“系统基础配置”→“硬件驱动”→“中间件能力封装”→“上层业务功能”,分层递进、从基础到应用,就能逐步把整个项目的逻辑串联起来~

weixin_46847454的博客 1446

ActivityStack 详解

http://android.xsoftlab.net/guide/components/tasks-and-back-stack.html 我花了不少时间看了些,资料和书籍。 结论是吊用没有啊,我看到的术语有 TaskStack ActivityStack Task ActivityRecord TaskRecord 等等等。 这些都是在源码中出现过的,还有 back stack。

ivolianer的专栏 2288

基于YOLO26的实时目标追踪实战:从训练到视频追踪(附完整可视化代码)

核心组合:YOLO26(高精度检测)+ ByteTrack(稳定追踪)是实时目标追踪的最优工业组合,Ultralytics内置集成无需额外开发;训练优化:追踪场景需优先提升检测框精度(增加box损失权重),保证ID稳定性;可视化核心:为每个ID分配唯一颜色、绘制运动轨迹、显示FPS,是落地场景的必备功能;性能调优:轻量化模型+降分辨率+OpenVINO导出,可在边缘设备(如研华工控机)实现实时追踪。这套代码可直接复用到智慧园区、停车场、工业产线等场景,仅需修改park.yaml中的类别和。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 571

Tasks and Back Stack

Android API Guides默认行为 1. 当Activity A启动Activity B, A stopped, 系统保存A状态。当Back pressed, 则A resumed 并恢复相关状态。 2. 当Home button pressed, 则当前activity stopped, task 进如background,系统保存每个task的状态。当用户启动了之前开始task的a

KylinMountain的笔记 622

基于FFT+BP神经网络/决策树的轴承故障诊断

基于FFT+BP神经网络/决策树的轴承故障诊断

天天酷科研的博客 131

文章ACCEPT之后填写内容教程-Springer-Verlag即施普林格

1. 确认corresponding author通讯作者机构是否正确(最好细分到系,如搜不到系只填大学也可)这些信息因为在投稿的时候都填过,所以一般都没问题,可确认并继续。2. Co-Author: 这篇文章有没有其他作者,如果有就选yes,并确认投稿时所填的作者姓名和机构是否正确。这个也是如果前期都填对了就不用修改。3. Research funders: 问文章的研究有没有资助,没有就选no,有就选yes,并填写机构名称和grant/contact numbers。

ZhangJiqun&191cm&85kg 4775

【Android API】Tasks and Back Stack

Back Stack 1.当前activity启动另一个新的activity时,新的activity进入栈顶,之前的activity状态变为stopped,但是它的user interface被系统保存。当点击back按钮时,当前activity出栈被销毁,之前的activity进行resume。 2.当所有的activity都出栈后,back stack为空,task被销毁。 3.当点

GeekLei 1114

2025年再论 SAP ABAP 系统经典的三层架构的理解

【摘要】本文基于作者19年SAP开发经验,深入解析SAP经典三层架构在S/4HANA时代的演进与实践。数据库层从多数据库支持转向HANA专属,通过SQLScript实现计算下推;应用层以ABAP平台为核心,融合OData和RAP等现代开发范式;表现层从SAP GUI过渡到Fiori Launchpad为主导。文章通过真实案例(如月末关账优化、ATP检查改造)展示三层协作如何提升性能,并探讨了本地/云/混合部署策略。全文贯穿SAP官方技术文档参考,为开发者提供体系化架构认知和实践指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 754

安卓四大组件 之 Activity 之 任务栈和回收栈(Tasks and Back Stack)

所有activity都属于任务栈;任务栈中包含着一系列activity,这些activity在任务栈中的排列顺序取决于用户打开它们的先后顺序——最先打开的位于栈底,后打开的依次向上罗列;任务栈可以移到后台并为其中的每一个activity保持其停止时的状态,目的是为了让用户在操作其他任务栈的同时不丢失他们曾经操作过的activity。

程序媛 2427

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android Tasks and Back Stack

这是Android官网(https://developer.android.google.cn/guide/components/activities/tasks-and-back-stack)上面关于Task和Back Stack的描述。我今天想从一下几个问题出发去了解Task和Back Stack。 1. Task和Back Stack,Activity的关系 有人说Task == B...

mypotatolove的专栏 375

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Activity之理解Tasks和Back Stack

Activity之理解Tasks和Back Stack Task是一组Activity的集合,用户与之交互用于完成一个特定的任务。所有的Activity被安排在一个stack中称之为back stack, Activity按照打开的顺序存放于其中。例如,一个邮件APP可以有一个用于显示接收的新邮件列表的Activity。当用户选择一封邮件,那一个新的Activity会打开显示其内容。这个新的Ac...

bdql的专栏 380

Android - 《Tasks and Back Stack》

翻译自官方文档里关于Activity的描述。 一个Activity是一个应用组件,提供一块屏幕,用户能用这个屏幕做一些交互。比如打电话、照相、发邮件、看地图。每个Activity都被授予一个窗口,这个窗口用来描画用户界面。这个窗口典型地填满屏幕,但是也有可能比屏幕小并且漂浮在其他窗口的顶部。 一个应用通常由多个松散结合的Activity构成。有代表性的,一个Activity会被设置为App的“

wusuobupo的博客 387

【Android】任务和返回栈(tasks and back stack)

tasks and back stack     一个Task 就是一组activity的集合。这些activity按照它们打开的顺序被放置于一个先进后出的栈中(back stack)。     用户点击图标打开一个app时,该app的task会被移到前台显示。如果当前没有该app的task,系统将会新建一个task并在其中运行Main activity。     一个a

白马笑西风的专栏 1497

Tasks And Back Stack

一个应用通常包含多个Activity。每个activity被设计为以一种指定的动作用户可以去执行另外的另外的Activity。比如一个email应用是一个Activity,显示一个新的邮件列表。当用户选择一个email,新的Activity打开email。          一个activity可以启动在另外应用中启动的Activity。比如,你的应用想发送一个邮件,你可以定义一个意图是发送的包

一知半解 764

置顶] Tasks and Back stack 详解

原文地址:http://developer.android.com/guide/components/tasks-and-back-stack.html 一个应用往往包含很多activities.每个activity都应围绕着用户可执行的特定动作来设计,并且可...

chunqingtai2922的博客 126
上一篇: Java细节02——类、接口、构造器、属性、方法的修饰符
下一篇: 微信SDK分享出现的各种问题
computer165
博客等级 码龄16年 7粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值