转自:http://liuwuhen.iteye.com/blog/1759796
activity是android中使用非常平凡的一种组件,我们除了需要掌握activity中的生命周期以外,还需要掌握activity中的其
他设置。
1.activity 中主题的设置
android中我们可以通过AndroidManifest.xml中设置activity中的主题,其实android提供了许多自带的主题样式,如下:
android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式
android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏
android:theme="Theme.Light" 背景为白色
android:theme="Theme.Light.NoTitleBar" 白色背景并无标题栏
android:theme="Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏
android:theme="Theme.Black" 背景黑色
android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏
android:theme="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏
android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景
android:theme="Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏
android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏
android:theme="Translucent"
android:theme="Theme.Translucent.NoTitleBar" 透明,无标题栏
android:theme="Theme.Translucent.NoTitleBar.Fullscreen" 透明,无标题栏,并且全屏显示
android:theme="Theme.Panel"
android:theme="Theme.Light.Panel"
我们可以通过需求来设置不同的主题。
2.android 中activity横竖屏设置
由于手机可以支持横竖屏切换,当android进行切换时可以回对页面中的布局照成影响,当在AndroidManifest.xml文件中定义了
android:screenOrientation="portrait",就表示当我们切换横竖屏的时候,屏幕的内容始终以竖屏显示,而不会根据屏幕
的方向来显示内容。而设置为android:screenOrientation="landscape"则为横屏显示。
3.android中activity中launchMode属性的几种值说明
launchMode 中的是四种状态
standard:每次都创建一个实例,默认将Activity加入到当前Task。
singleTop:启动的不是当前的Activity的话,则创建一个实例,并加入当前Task,否则抛弃 ,Intent不做任何反应
singleTask:只有一个Task,不会重新创建已存在的Activity。
singleInstance:一个Task里只有一个Activity。启动Acivity时,会重新创建一个Task,并把Activity加入新建的Task。
例如:如果用户长时间的离开一个任务,那么系统会清除这个任务根Activity以外的所有Activity。当用户再次返回这个任务时,只有根
Activity被存储。系统行为的这种方式是因为经过长时间以后,用户在返回这个任务之前可能已经放弃它们的作业,而开始了某些新的任务。
你能够使用一些Activity属性来修改这种行为
1.alwaysRetainTaskState
如果这个属性在一个任务的根Activity中被设置为“true”,那么像上面描述的那样的默认行为就不会发生。即使是长时间之后,这个任务也会在它的堆栈中保留所有的Activity。
2.clearTaskOnLaunch
如
果这个属性在一个任务的根Activity中被设置为“true”,那么无论用户什么时候离开和返回这个任务,堆栈都会被清除到根Activity的位
置。换句话说,它与alwaysRetainTaskState属性相反,用户总是返回到任务的初始状态,即使只离开这个任务一会儿。
3.finishOnTaskLaunch
这
个属性点像clearTaskOnLaunch属性,但是它只操作单个Activity,而不是整个任务。它也能导致任何Activity离开,包括根
Activity。当这个属性设置为“true”时,这个Activity只保持着这个任务中当前会话那部分。如果用户离开,然后再返回这个任务,那么它
就不再存在了。