`
寻梦者
  • 浏览: 626583 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

android中mainifest的一些属性

 
阅读更多

android:allowTaskReparenting

     用法<application android:allowTaskReparenting="true/false"></application>
     是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。用来标记Activity能否从启动的Task移动到有着affinity的Task(当这个Task进入到前台时)—— “true”,表示能移动,“false”,表示它必须呆在启动时呆在的那个Task里。

     如果这个特性没有被设定,设定到<application>元素上的allowTaskReparenting特性的值会应用到Activity上。默认值为“false”。

     一般来说,当Activity启动后,它就与启动它的Task关联,并且在那里耗尽它的整个生命周期。当当前的Task不再显示时,你可以使用这个特性来 强制Activity移动到有着affinity的Task中。典型用法是:把一个应用程序的Activity移到另一个应用程序的主Task中。

     例如,如果e-mail中包含一个web页的链接,点击它就会启动一个Activity来显示这个页面。这个Activity是由Browser应用程序 定义的,但是,现在它作为e-mail Task的一部分。如果它重新宿主到Browser Task里,当Browser下一次进入到前台时,它就能被看见,并且,当e-mail Task再次进入前台时,就看不到它了。

     Actvity的affinity是由taskAffinity特性定义的。Task的affinity是通过读取根Activity的affinity 决定。因此,根据定义,根Activity总是位于相同affinity的Task里。由于启动模式为“singleTask”和 “singleInstance”的Activity只能位于Task的底部,因此,重新宿主只能限于“standard”和“singleTop”模 式。

android:alwaysRetainTaskState

     用法<activity android:alwaysRetainTaskState="true/false"></activity>
     用来标记Activity所在的Task的状态是否总是由系统来保持——“true”,表示总是;“false”,表示在某种情形下允许系统恢复Task 到它的初始化状态。默认值是“false”。这个特性只针对Task的根Activity有意义;对其它Activity来说,忽略之。
     一般来说,特定的情形如当用户从主画面重新选择这个Task时,系统会对这个Task进行清理(从stack中删除位于根Activity之上的所有Activivity)。典型的情况,当用户有一段时间没有访问这个Task时也会这么做,例如30分钟。
     然而,当这个特性设为“true”时,用户总是能回到这个Task的最新状态,无论他们是如何启动的。这非常有用,例如,像Browser应用程序,这里有很多的状态(例如多个打开的Tab),用户不想丢失这些状态。

android:clearTaskOnLanunch

      用法<activity android:clearTaskOnLanunch=”true/false”></activity>
      用来标记是否从Task中清除所有的Activity,除了根Activity外(每当从主画面重新启动时)——“true”,表示总是清除至它的 根 Activity,“false”表示不。默认值是“false”。这个特性只对启动一个新的Task的Activity(根Activity)有意义; 对Task中其它的Activity忽略。
      当这个值为“true”,每次用户重新启动这个Task时,都会进入到它的根Activity中,不管这个Task最后在做些什么,也不管用户是使 用 BACK还是HOME离开的。当这个值为“false”时,可能会在一些情形下(参考alwaysRetainTaskState特性)清除Task的 Activity,但不总是。
      假设,某人从主画面启动了Activity P,并从那里迁移至Activity Q。接下来用户按下HOME,然后返回Activity P。一般,用户可能见到的是Activity Q,因为它是P的Task中最后工作的内容。然而,如果P设定这个特性为“true”,当用户按下HOME并使这个Task再次进入前台时,其上的所有的 Activity(在这里是Q)都将被清除。因此,当返回到这个Task时,用户只能看到P。
     如果这个特性和allowTaskReparenting都设定为“true”,那些能重新宿主的Activity会移动到共享affinity的Task中;剩下的Activity都将被抛弃,如上所述。

android:configChanges

     当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 比如 "locale|navigation|orientation".
     举例:在按下power键时,直接在应用程序里onPause处理就好。当app是竖屏时,这样处理没问题。但是当app是横屏时,按下power 键,app会强制回到竖屏,并且会重新调用activity的onCreate。很多时候这不是预期结果,所以就会用到 android:configChanges。

     在配置文件里设置android:configChanges=”keyboardHidden|orientation”,这样在屏幕方向改变的时候就 不会重新调用activity的onCreate()方法,而是调用onConfigurationChanged(),然后在activity里面重在 下。

android:enabled
     activity 是否可以被实例化
     用法:<activity android:enabled="true"></activity>

android:excludeFromRecents
     是否可被显示在最近打开的activity列表里
     用法:<activity android:excludeFromRecents="true"></activity>

android:exported
     是否允许activity被其它程序调用

android:finishOnTaskLaunch
     用来标记当用户再次启动它的Task(在主画面选择这个Task)时已经存在的Activity实例是否要关闭(结束)——“true”,表示应该关闭,“false”表示不关闭。默认值是“false”。
     如果这个特性和allowTaskReparenting都设定为“true”,这个特性胜出。Activity的affinity忽略。这个 Activity不会重新宿主,但是会销毁。

android.icon
     用法:<application android:icon="@drawable/xx_icon"></application>,加在应用程序图标

android:label
     定义了每个title栏的名称,但是优先级低于activity中的setTitle()

分享到:
评论

相关推荐

    android群雄传

    8.3 Android Mainifest启动模式 200 8.3.1 standard 201 8.3.2 single Top 201 8.3.3 single Task 201 8.3.4 single Instance 202 8.4 Intent Flag启动模式 203 8.5 清空任务栈 203 8.6 Activity任务栈使用 ...

    Android package属性、package name和Application ID三者的联系及区别

    package属性:在AndroidManifest.xml文件中。 package name:应用程序的包名。 Application ID:模块defaultConfig块下的applicationId属性。 设置Application ID 每个Android应用程序都有唯一一个类似Java包名的...

    AndroidManifest.xml文件

    上次传的main activity代码配套,欢迎页面太丑没穿,好吧,就这样。

    mainifest.plist

    sss

    androi解压缩文件或文件夹

    1.Android 压缩文件,压缩文件夹 2.解压文件,解压文件夹 3.完美支持文件名称和文件夹目录中存在中文的...要点 mainifest中的权限 6. zipUtil在压缩和解压过程中的编码格式的指定"GBK" 7.项目可运行,希望大家给个好评

    Android编程实现横竖屏切换时不销毁当前activity和锁定屏幕的方法

    首先在Mainifest.xml的Activity元素中加入android:configChanges=”orientation|keyboardHidden”属性 &lt;activityandroid name=.FileBrowserandroid:label app_nameandroid:configChanges=orientation|...

    CDH-5.9.1+Centos7+cloudera-manager-centos7-cm5.9.1.txt

    CDH-5.9.1-1.cdh5.9.1.p0.4-el7.parcel+cloudera-manager-centos7-cm5.9.1文件太大上传不了(2G)。里面是baiduwangpan链接和提取码。要者自提 Centos7!Centos7!Centos7!Centos7!Centos7!Centos7!...

    maven-git-versioning-extension:此扩展将根据当前的git分支或标签虚拟设置项目版本

    :information: pom文件将不会被修改,版本只会在内存中被修改。 摆脱... 编辑pom.xml 通过git和文件内管理版本 Git合并冲突 安装 :warning_selector: 最低要求的Maven版本是3.6.3 添加扩展 创建或更新${basedir...

    hhclass汉化 用来修改MANIFEST.MF

    hhclass汉化 用来修改MANIFEST.MF

    详解HTML5中的manifest缓存使用

    起源html5之前的网页,都是无连接,必须联网才能访问,这其实也是web的特色,这其实对于PC是时代...什么是Cache Manifest首先manifest是一个后缀名为minifest的文件,在文件中定义那些需要缓存的文件,支持manifest的

    wordpress配置

    WordPress mainifest.json搭建网站的配置文件,亲测可以用

    一套英文Java笔试题面试题.doc

    4.please explian about mainifest.mf 5.what technology are used in J2EE platfrom.please list and explain concisely. 6.please explain the relationship between classpath and package,and the relationship ...

    vue-devtools 浏览器调试插件

    用于chrome调试vue项目,安装方法: 1.下载资源 ...4.修改shells、chrome目录下的mainifest.json 中的persistant为true 5.打开谷歌,添加扩展程序chrome://extensions/ 选择开发者模式、加载已解压的扩展程序

    uni-app 仿小米商城

    uni-app 仿小米商城示例源码,目录: store static pages components common uni.scss pages.json mainifest.json main.js App.vue

    vue devtools的安装与使用教程

    一....二.解压到本地的某盘 三.用你的npm中进入该...五:修改shells&gt;chrome文件夹下的mainifest.json 中的persistant为true 六:我们找到谷歌浏览器的扩展程序功能,勾选开发者模式,然后我们将插件文件夹里的shells&gt;

    RuleApp1.4.0文章社区客户端源码

    可以打包成安卓,苹果,h5,小程序,全新的版本增加了私聊和群聊,动态模块等,还有自动和手动封禁机制。 主要模块:用户模块,文章模块,动态模块,聊天模块,...4.修改mainifest.json,设置app的名称,启动图,和图

    jekyll-theme-mdui::wine_glass:基于MDUI的Jekyll主题

    )去做 V2注意文件必填或可选: 档案必需或可选描述mainifest.json 可选的是每个WebExtension必须包含的唯一文件。请参见。 sw.js 可选的服务人员。请参见。 search.json 可选的如果使用搜索页面,则必填。 tags....

Global site tag (gtag.js) - Google Analytics