AndoridManifest.xml中常用属性总结

Posted Android学习交流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndoridManifest.xml中常用属性总结相关的知识,希望对你有一定的参考价值。

     
 

       最近工作发现AndroidManifest.xml中的一些属性很有讲究,对一些逻辑处理很有效果,下面整理一下常用的属性。


1、android:alwaysRetainTaskState
系统是否永久保存当前Activity所在的Task的状态。"true"将会保存,"false"系统将允许在明确的情况下把Task的状态重置为初始状态。默认值是"false"。这个属性只对这个Task的root activity有意义,它将忽略其它所有的activity。

通常情况下,当用户从主屏幕重新选择这个Task时系统将清除这个Task(移除root activity之上的所有activity)。通常,如果用户在确定的时间内没有再访问这个Task,例如30分钟,系统将执行清除操作。

可是,当这个属性设置为"true"时,用户将总是回到这个Task的最后状态,无论他们采取任何方式。这是非常有用的,例如,像网页浏览器这样的应用程序有很多的状态(例如有很多tab),用户不想忘记他们在浏览哪个网页。


2、android:clearTaskOnLaunch

无论何时从主屏幕重启这个activity时是否从Task中移除除了root activity的所有activity。这个属性仅仅对那些启动了新的Task的activity有意义(root activity);它将忽略这个Task中所有其他的activity。

当这个属性值为"true"时,每一次用户重新启动这个Task,都会回到它的root activity,无论它们在这个Task中最后做了什么事,无论是点击back键或者home键离开它。当这个属性值为"false"时,这个Task将会在特定的情况下被清空,但是并不是总会清空。

假如,从主屏幕启动activity P,然后从activity P跳转到activity Q。用户点击home键,然后再启动activity P。通常情况下,用户将会看到activity Q,因为这是在P的Task中的最后的状态。但是,如果P的这个属性值为"true",当用户点击home键,这个Task转到后台的时候,所有这个activity上面的activity都会被移除。所以,当用户在回到这个Task的时候只会看到P。

 

3、android:configChanges
     activity会自己处理的configChanges列表。默认情况下,在运行时发生configChanges时,activity会先销毁然后重新启动,但是如果声明了这个属性,就可以阻止activity重新启动。相反,activity会继续运行,然后调用它的 onConfigurationChanged()方法。

注意:应该尽量避免使用这个属性,它应该是你最后的选择。可以阅读android开发文档的 Handling Runtime Changes这篇文章来了解如何正确地处理由于configChanges引起activity重启的更多信息。

下面的所有字符串都是这个属性的可选值。如果是多个值,可以用'|'分割,例如 "locale|navigation|orientation"。

所有这些configChanges都会影响应用程序的可见资源的属性。因此,当 onConfigurationChanged()方法调用时,通常会重新获取所有所需资源(例如视图的layout,drawable等等)来正确地处理这些变化。

 

4、android:excludeFromRecents
     是否不加入到最近打开的显示给用户的activity列表里,默认是false。这个设置为true时,在recents中就找不到它了,一般快捷启动方式采用这种方式。


5、android:finishOnTaskLaunch
      当用户重新启动这个任务的时候,是否关闭已打开的activity,默认是false。如果这个属性和allowTaskReparenting都是true,那么只有这个属性起作用。Activity的affinity 属性将被忽略。该Activity已经被摧毁并非可重用的。


6、android:launchMode(Activity加载模式)
     一共有四种,这个需要好好研究,这里一句话也说不清哈。

 

7、android:multiprocess
     是否允许此activity加入到启动它的那个组件的process里。

通常,一个新的activity的实例会加入到应用程序定义的那个process里面,所以这个activity的所有实例都运行在同一个process里面。但是,如果这个属性设置为"true",这个activity的实例可以运行在多个process里面,允许系统在任何它想使用这个activity的地方创建它的实例,一般情况下,这个属性是不需要的,也是不期望使用的。

 

8、android:noHistory
      当用户从Activity上离开并且它在屏幕上不再可见时,Activity是否从Activity stack中清除并结束。默认是false。如果设置为''true",Activity不会留下历史痕迹。它不会在这个Task中保留,用户将不能在这个Task中回到这个activity实例。


9、android:screenOrientation
     activity在设备上显示的方向。


10、android:stateNotNeeded
     activity是否不需要保存状态就可以被销毁或者重启。

通常,当一个activity保存资源关闭之前,它的onSaveInstanceState() 方法会被调用。这个方法把这个activity的当前状态保存在一个Bundle对象中,当这个activity重新启动的时候传递给onCreate()方法。如果这个属性设置为''true'',onSaveInstanceState() 方法就不会调用,当重新启动这个activity的时候,传递给onCreate()方法的是一个Null值,就像第一次启动这个activity时候一样。

设置为"true"确保activity从原始的状态被启动。例如,显示主界面的activity就使用了这个属性,确保如果由于一些原因导致程序崩溃 时它不会被移除。


11、android:windowSoftInputMode
      activity主窗口与软键盘的交互模式。这个属性能影响两件事情:
     1)软键盘的状态——软键盘是隐藏还是显示——当这个activity变成焦点时。
     2)activity主窗口的调整——是否减少活动主窗口大小以便腾出空间放软键盘,当activity的部分窗口被软键盘覆盖的时候,是否它的内容的当前焦点可见。



请关注我的新浪微博:AndroidTip

CSDN博客:http://blog.csdn.net/yayun0516


以上是关于AndoridManifest.xml中常用属性总结的主要内容,如果未能解决你的问题,请参考以下文章

常用的CSS属性。

javascript中常用坐标属性offsetscrollclient

javascript中常用坐标属性offsetscrollclient

HTML a 标签的基本用法和常用属性

[MySQL]--MySQL表中某个列插入数据总被截断,报编码方式的语法错误,实际是column的not null属性和更改编码语法导致的冲突。

MYSQL常用字段属性