温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中Activity有哪些常用的属性

发布时间:2021-07-12 14:04:36 来源:亿速云 阅读:121 作者:Leah 栏目:移动开发

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

个人理解

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有哪些常用的属性就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI