美文网首页
Android Manifest Activity不常用的属性

Android Manifest Activity不常用的属性

作者: 魏树鑫 | 来源:发表于2019-06-18 15:27 被阅读0次

遇到的场景使用

  1. 当第三方应用调用App分享时,会产生两个任务栈,如果将主App的任务栈关闭,会导致点击Logo时无法启动App
//确保分享动作是连续的,如果中断的话,那么就要重新分享;
//还可以防止分享中途,数据源变化,导致分享数据不正确;
//将分享面板的activity添加以下属性
android:noHistory=["true" | "false"]//解决切换App或者屏幕,销毁分享面板
android:excludeFromRecents=["true" | "false"]//不显示在最近打开的记录中,在多任务键中无法看到
//是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。
android:allowTaskReparenting=["true" | "false"]

//是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态
android:alwaysRetainTaskState=["true" | "false"]

//比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 从新启动 P, 是否显示 Q
android:clearTaskOnLaunch=["true" | "false"]

//当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 
//对android:configChanges属性,一般认为有以下几点:
//1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次
//2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次
//3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
//自从Android 3.2(API 13),在设置Activity的android:configChanges="orientation|keyboardHidden"后,还是一样会重新调用各个生命周期的。因为screen size也开始跟着设备的横竖切换而改变。所以,在AndroidManifest.xml里设置的MiniSdkVersion和 TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了设置"orientation",你还必须设置"ScreenSize"。
//解决方法:
//AndroidManifest.xml中设置android:configChanges="orientation|screenSize“

//“mcc“ 移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
//“mnc“ 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
//“locale“ 所在地区发生变化。
//“touchscreen“ 触摸屏已经改变。(这不应该常发生。)
//“keyboard“ 键盘模式发生变化,例如:用户接入外部键盘输入。
//“keyboardHidden“ 用户打开手机硬件键盘
//“navigation“ 导航型发生了变化。(这不应该常发生。)
//“orientation“ 设备旋转,横向显示和竖向显示模式切换。
//“fontScale“ 全局字体大小缩放发生改变
android:configChanges=["fontScale"]

//activity 是否可以被实例化
android:enabled=["true" | "false"]

//是否可被显示在最近打开的activity列表里
android:excludeFromRecents=["true" | "false"]

//切换Activity时自动移除从最近打开的activity列表里
android:autoRemoveFromRecents=["true" | "false"]

//是否允许activity被其它程序调用
android:exported=["true" | "false"]

//是否关闭已打开的activity当用户重新启动这个任务的时候
android:finishOnTaskLaunch=["true" | "false"]

//是否需要移除这个activity当用户切换到其他屏幕时。 这个属性是 API level 3 中引入的
android:noHistory=["true" | "false"]

//一个activity运行时所在的进程名,所有程序组件运行在应用程序默认的进程中,这个进程名 //跟应用程序的包名一致。
//中的元素process属性能够为所有组件设定一个新的默认值。但是任何组件都可以覆盖这个默认值,允许你
//将你的程序放在多进程中运行。 如果这个属性被分配的名字以:开头,当这个activity运行时,一个新的专属于这个程序的
//进程将会被创建。如果这个进程名以小写字母开头,这个activity将会运行在全局的进程中,被它的许可所提供。
android:process="string"

//是否 activity被销毁和成功重启并不保存状态
android:stateNotNeeded=["true" | "false"]

//activity的亲属关系, 默认情况同一个应用程序下的activity有相同的关系
android:taskAffinity="string"

相关文章

网友评论

      本文标题:Android Manifest Activity不常用的属性

      本文链接:https://www.haomeiwen.com/subject/eyufqctx.html