Android Activity进行全解析
创始人
2024-06-23 00:30:24
0

Android Activity集成开发环境包括许多新的和改进的用于提高工作效率的功能。IDE 还进行了重新设计,从而向开发人员提供对.NET Framework 组件的直接访问,大大减轻了开发人员的工作压力。

只有最开始的activity显示出来。这样做的原因是:当用户很长时间以后回来的时候,它倾向于重新开始工作,而不是接着上次的工作做。当然,这是默认的模式。activity有一些属性可以控制请空的动作。当任务的根acitvity的此属性设置为 "true" 的时候。

无论用户何时返回应用程序,程序都会请空队列。从另一个角度说,这个属性和alwaysRetainTaskState属性完全相反。即使离开一会,用户也会被导航到初始状态。这个属性有些像clearTaskOnLaunch, 但是它是针对某个activity而非整个任务的。它可以清除任何Android Activity,当然包括任务堆栈的根activity

当此属性设置为"true" 的时候,此activity只在用户当前会话中显示,当用户离开再回来的时候,此activity已经被清除。有另外一种方式来请空任务。如果intent含有 FLAG_ACTIVITY_CLEAR_TOP 节点,并且目标任务已经有一个指定activity的实例来处理这个intent了。

那么这个activity顶上的节点将被全部清除,这个activity的实例就位于任务堆栈的顶部了。如果指定的activity设置为"standard",。它将从任务中移除,建立一个新的实例来响应此intent。因为启动模式设置为 "standard"的时候,会建立一个新的实例来响应intent。

FLAG_ACTIVITY_CLEAR_TOP 经常和FLAG_ACTIVITY_NEW_TASK.一起使用。当他们一起使用的时候,可以定位到另外一个任务中已经存在的activity上,使得这个acitivity响应intent。

怎样把一个activity设置为整个任务的入口呢?可以设置一个intent filter: "android.intent.action.MAIN" 作为默认动作;"android.intent.category.LAUNCHER" 作为类别。(是 Intent Filters 章节的例子)。这种类型的的filter对应的Android Activity的icon和label显示在任务中,这样用户可以方便的回到任务

第二个能力尤其重要,用户必须可以离开任务,并且重返任务。因此, "singleTask" 和 "singleInstance"这2个启动模式必须用在含有 MAIN 和 LAUNCHER filter的activity中。想象一下,如果不加这2个filter会怎样?一个intent请求"singleTask" 的activity,初始化了一个新的任务,用户操作了一会这个任务。

然后用户点击“HOME”键。现在这个任务就被HOME窗体覆盖了。但是因为这个任务不能在application launcher(注:类似于进程管理器)里面看到,因此用户没有办法打开它

 CTIVITY_NEW_TASK 标志也有同样的问题。这个标志将使得activity在一个新的任务执行,当用户点击HOME 键离开任务的时候,必须能让用户回到这个任务。其他的一些机制(如通知管理器)经常在外部的任务开启某个activity,而不是activity所在的任务本身,因此必须在intent触发 startActivity()方法时使用FLAG_ACTIVITY_NEW_TASK 标记。

如果你有一个可以使用这个标记并且可以被外部调用的activity,要注意使得用户可以重新回到这个任务。当你不想用户重新回到任务的时候,将 <activity> 节点的finishOnTaskLaunch 设置为"true". 请参见前面的 Clearing the stack。

【编辑推荐】

  1. Android应用程序组建原理深入剖析 Android SMS短信服务相关概念简述
  2.  
  3. PythonAndroid数据库相关代码解读
  4. PythonAndroid安装卸载程序具体操作方法解析
  5. Android应用程序的四个关键点

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...