网站建设资讯

NEWS

网站建设资讯

Android中Activity有哪些常用的属性

这篇文章将为大家详细讲解有关Android中Activity有哪些常用的属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

我们提供的服务有:成都网站建设、网站建设、微信公众号开发、网站优化、网站认证、张家界ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的张家界网站制作公司

个人理解

1>Activity launchMode设置不为standard,在跳转Activity时,如果新的Activity不再创建新的实例(不执行onCreate) 会调用onNewIntent方法。 (正常生命周期情况不会调用onNewIntent())

2>Activity launchMode singleInstance实用场景—>关于浏览器的LaunchMode为singleTask,所以如果当你点击一个连接下载文件时(由一个activity来处理下载,launchmode为standard),如果再次进入浏览器,那么下载页面就被Destory了,那么这里我们可以把下载页面LaunchMode设置为singleInstance可以解决这个问题.(即:在使用singleTask的情况下 不想关闭的界面可单独新起一个task)

3>taskAffinty对lanuchMode的影响 :

当LanuchMode设置为 standard 和singTop,即使 taskAffinty不同,也不会新起Task.

当LanuchMode设置为 singleTask ,以A启动B来说

1、当A和B的taskAffinity相同时:第一次创建B的实例时,并不会启动新的task,而是直接将B添加到A所在的task;当B的实例已经存在时,将B所在task中位于B之上的全部Activity都删除,B就成为栈顶元素,实现跳转到B的功能。 2、当A和B的taskAffinity不同时:第一次创建B的实例时,会启动新的task,然后将B添加到新建的task中;当B的实例引进存在,将B所在task中位于B之上的全部Activity都删除,B就成为栈顶元素(也是root Activity),实现跳转到B的功能。

当LanuchMode设置为singleInstance

当第一次创建该Activity实例时,会新建一个task,并将该Activity添加到该task中。注意:该task只能容纳该Activity实例,不会再添加其他的Activity实例!如果该Activity实例已经存在于某个task,则直接跳转到该task。

4>allowTaskReparenting 这个属性用来标记一个Activity实例在当前应用退居后台后,是否能从启动它的那个task移动到有共同affinity的task,“true”表示可以移动,“false”表示它必须呆在当前应用的task中,默认值为false。

5>clearTaskOnLaunch

程序回到home界面后,再次点击程序图标的效果。影响的是activity的生命周期。

简单的:

activity A(clearTaskOnLaunch设置为true)(为主界面)

activity B

程序启动A,在启动B。再点击HOME键回到桌面,再点击程序图标,效果是B执行onrestart,B执行ondestory。A界面显示。(如果clearTaskOnLaunch没设置,则是显示B界面)

稍微复杂点的:

activity A(clearTaskOnLaunch设置为true),B(clearTaskOnLaunch设置为true),C

依次启动A,B,C,点击HOME,再在桌面点击图标。启动的是A(执行onrestart),B、C执行(ondestory)。

也就是说,优先启动第一个(A)已注册clearTaskOnLaunch为true的Activity,其余的后启动的activity(B、C)都销毁,除非前面A已经finish销毁,后面的已注册clearTaskOnLaunch为true的activity才会生效。

关于Android中Activity有哪些常用的属性就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站名称:Android中Activity有哪些常用的属性
分享链接:http://cdweb.net/article/ghhhjs.html