`
isiqi
  • 浏览: 16031967 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

AndroidManifest.xml文件详解(activity)(四)

 
阅读更多

android:multiprocess

这个属性用于设置Activity的实例能否被加载到与启动它的那个组件所在的进程中,如果设置为true,则可以,否则不可以。默认值是false。

通常,一个新的Activity实例会被加载到定义它的应用程序的进程中,以便应用程序的所有Activity都运行在同一个进程中。但是,如果这个属性被设置为true,那么这个Activity的实例就可以运行在多个进程中,允许系统在使用它们的进程中来创建实例(权限许可的情况下),这几乎是从来都不需要的事情。

android:name

这个属性用于设置Activity的实现类(Activity的子类)的名字。这个属性值应该是完整的Java类名,如:com.example.project.ExtracurricularActivity。但是,可以用简写的方式,名字第一个字符用“.”符号,如:.ExtracurricularActivity。它对应的包名是在<manifest>元素中指定的。

一旦发布了应用程序,就不应该改变这个名称了(除非设置了android:exported=”false”)。

这个属性没有默认值,名称必须被指定。

android:noHistory

这个属性用于设置在用户离开该Activity,并且它在屏幕上不再可见的时候,它是否应该从Activity的堆栈被删除。如果设置了true,则要删除,否则不删除。默认值是false。

如果设置为true,则意味着Activity不会保留历史轨迹。也就是说,它不会保留在任务的Activity堆栈中,因此用户不能够在返回到这个Activity。

这个属性在API Level 3中被引入。

android:permission

这个属性用于设定启动Activity的客户端或者是响应一个Intent对象的请求所必须要有的权限。如果startActivity()方法或startActivityForResult()方法的调用者没有被授予指定的权限,那么它的Intent对象就不会发送给对应的Activity。

如果这个属性没有设置,那么<application>元素中的permission属性的设置就应用到Activity元素上。如果<application>元素也没有设置,那么这个Activity就不会受到权限的保护。

android:process

这个属性用于设置Activity应该运行的那个进程的名字。通常,应用程序的所有组件都运行在为这个程序所创建的一个默认的进程中。它跟应用程序的包有相同的名字。<application>元素的process属性能够给所有的组件设置一个不同的默认值。但是每个组件都能够覆盖这个默认设置,允许把应用程序分离到多个进程中。

如果这个属性名的值是用“:”开始,那么在需要的时候,就会创建一个应用程序私有的新的进程,这个Activity就会运行在这个进程中。如果进程名使用小写字母开头,那么在权限许可的情况下,该Activity会运行在用它命名的全局进程中。这样就运行不同应用程序的组件能够共享一个进程,从而减少资源的使用。

android:screenOrientation

这个属性用于设置Activity在设备上显示的方向。

属性值可以是下表中列出的一个值:

unspecified

默认值,由系统来选择方向。它的使用策略,以及由于选择时特定的上下文环境,可能会因为设备的差异而不同。

user

使用用户当前首选的方向。

behind

使用Activity堆栈中与该Activity之下的那个Activity的相同的方向。

landscape

横向显示(宽度比高度要大)

portrait

纵向显示(高度比宽度要大)

reverseLandscape

与正常的横向方向相反显示,在API Level 9中被引入。

reversePortrait

与正常的纵向方向相反显示,在API Level 9中被引入。

sensorLandscape

横向显示,但是基于设备传感器,既可以是按正常方向显示,也可以反向显示,在API Level 9中被引入。

sensorPortrait

纵向显示,但是基于设备传感器,既可以是按正常方向显示,也可以反向显示,在API Level 9中被引入。

sensor

显示的方向是由设备的方向传感器来决定的。显示方向依赖与用户怎样持有设备;当用户旋转设备时,显示的方向会改变。但是,默认情况下,有些设备不会在所有的四个方向上都旋转,因此要允许在所有的四个方向上都能旋转,就要使用fullSensor属性值。

fullSensor

显示的方向(4个方向)是由设备的方向传感器来决定的,除了它允许屏幕有4个显示方向之外,其他与设置为“sensor”时情况类似,不管什么样的设备,通常都会这么做。例如,某些设备通常不使用纵向倒转或横向反转,但是使用这个设置,还是会发生这样的反转。这个值在API Level 9中引入。

nosensor

屏幕的显示方向不会参照物理方向传感器。传感器会被忽略,所以显示不会因用户移动设备而旋转。除了这个差别之外,系统会使用与“unspecified”设置相同的策略来旋转屏幕的方向。

注意:在给这个属性设置的值是“landscape”或portrait的时候,要考虑硬件对Activity运行的方向要求。正因如此,这些声明的值能够被诸如Google Play这样的服务所过滤,以便应用程序只能适用于那些支持Activity所要求的方向的设备。例如,如果声明了“landscape”、“reverseLandscape”、或“sensorLandscape”,那么应用程序就只能适用于那些支持横向显示的设备。但是,还应该使用<uses-feature>元素来明确的声明应用程序所有的屏幕方向是纵向的还是横行的。例如:<uses-feature android:name=”android.hardware.screen.portrait”/>。这个设置由Google Play提供的纯粹的过滤行为,并且在设备仅支持某个特定的方向时,平台本身并不控制应用程序是否能够被按照。

android:stateNotNeeded

这个属性用于设置在没有保存Activity状态的情况下,它能否被销毁且成功的重启。如果设置为true,则不引用Activity之前的状态就能够被重启,如果设置为false,重启Activity时,则需要它之前的状态。默认值是false。

通常,Activity在最终被关掉之前,会调用onSaveInstanceState()方法来保存资源。这个方法会用一个Bundle对象来保存Activity的当前状态,然后在这个Activity被重启时,再把这个Bundle对象传递给onCreate()方法。如果这个属性设置为true,onSaveInstanceState()方法就可以不被调用,并且调用onCreate()方法时,会用null来代替Bundle对象,就像Activity被第一次重启一样。

设置为true,会确保Activity在缺省状态下能够被重启。例如,在主屏显示的Activity如果使用这个设置,即使由于某些原因导致Activity崩溃,也会确保它不会被删除。

分享到:
评论

相关推荐

    Android学习笔记之AndroidManifest.xml文件解析(详解)

    AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的...

    深入AndroidManifest.xml文件解析详解

    AndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的...

    Android第三方文件选择器aFileChooser使用方法详解

    aFileChooser是android平台上的一个第三方文件选择器,其在github上的项目主页是...(1) 首先要配置Androidmanifest.xml文件:  &lt;activity android:name=com.ipaulpro.afilechooser.FileChooserActivity and

    Android从入门到放弃—— 一、Activity详解1

    门——Activity(一) Activity是什么: Activity作为Andorid的四大组件...在AndroidManifest.xml文件中配置 这里是使用Android Studio创建项目默认创建的MainActivity代码 class MainActivity : AppCompatActivity()

    Android安装apk文件并适配Android 7.0详解

    首先在AndroidManifest.xml文件,activity同级节点注册provider: &lt;provider android:name=android.support.v4.content.FileProvider android:authorities=${applicationId}.file_provider android:exported=...

    Android Activity启动模式之singleTop实例详解

    本文实例讲述了Android Activity启动模式之singleTop。分享给大家供大家参考,具体如下: 在前面文章《Android ...(1)修改AndroidManifest.xml 修改该配置文件,设置MainActivity的启动模式为singleTop,如下:

    Android中 service组件详解

    service组件跟activity组件及其类似,可以说service是没有界面的activity, 当然service的生命周期... 2,在AndroidManifest.xml 文件中配置该service。 怎么启动service呢,想想启动activity是不是有两种方法:  

    Android基础知识之broadcast广播详解

    静态注册广播就是在androidManifest.xml文件中注册广播,假设我们要实现这样一个效果,在一个activity上点击按钮,发送一条广播,这条广播弹出一个toast,显示“静态”二字。 先看看广播接受者: public class ...

    详解基于Android的Appium+Python自动化脚本编写

    1.Appium Appium是一个开源测试自动化框架,可用于原生,混合和移动Web应用程序测试, 它使用WebDriver协议驱动iOS,Android和Windows...逆向AndroidManifest.xml 下载AXMLPrinter2.jar文件,逆向xml文件:命令行输入

    详解VirtualApk启动插件Activity

    插件以APK的形式保存在SD卡上,通过startActivity方式启动Activity需要首先将Activity注册到AndroidManifest.xml,如果没有注册就会出现如下错误。 Instrymentation.checkStartActivityResult 要实现插件Activity的...

    Android中转场动画的实现与兼容性处理

    前言 在 Android 5.0 之前,我们已经有了 overridePendingTransition() 方法来... 在 res/value/style 文件中为每个 Activity 指定转场动画的 style ,并在 AndroidManifest.xml 文件中为每个 Activity 设置对应的 a

    详解Flutter扫码识别二维码内容

    前面一篇写了生成二维码图片,这篇来写使用...在使用它之前需要先配置 android\app\src\main\AndroidManifest.xml 在该文件中添加添加app获取相机权限及BarcodeScanner activity &lt;!--获取相机权限--&gt; &lt;use

    Android Activity启动模式之singleTask实例详解

    本文实例分析了Android Activity启动模式之singleTask。分享给大家供大家参考,具体如下: 前面的文章介绍了Android 活动Activity的启动模式:standard 和...(1)修改AndroidManifest.xml 修改活动MainActivity的启

    Android笔记之:onConfigurationChanged详解

    从事Android开发,免不了会在应用里嵌入一些广告SDK,在嵌入了众多SDK后,发现几乎每个要求在AndroidManifest.xml申明Activity的广告SDK都会要求加上注明这么一句属性: 代码如下:android:configChanges=”...

    Android ActionBar搜索功能用法详解

    本文实例讲述了Android ActionBar搜索功能用法。分享给大家供大家参考,具体如下: 使用ActionBar SearchView时...1. 在AndroidManifest.xml中为提供SearchView的Activity添加meta-data &lt;activity android:name=.n

    Android 屏幕横竖切换详解

    Android 里面控制Activity的方向,只要在AndroidManifest.xml里面对应的Activity节点下加一句 android:screenOrientation=”landscape”(landscape是横屏,portrait竖屏)。  我凭这句话混了一年,基本都可以的,...

    Android Theme以及解决启动黑屏的方法详解

    1.修改AndroidManifest.xml 设置App的全局Theme或者Activity的界面Theme android:icon=@drawable/ipod_icon android:label=@string/app_name android:launchMode=singleTask&gt; &lt;!-- iPod主界面 --&gt; &lt;...

    【推荐】超全的移动安全自学资料精编合集(43份).zip

    Android安全开发基础: 应用程序配置文件详解(AndroidManifest.xml) Android安全逆向工程: 逆向工程知识技能补充篇 Android安全软件壳: 说说Android软件壳 Android安全应用逆向: 反编译classes.dex文件 Android安全...

    Android开发应用实战详解源代码

    2.3.1 androidmanifest.xml文件 2.3.2 src目录 2.3.3 常量的定义文件 2.4 程序生命周期 2.4.1 android周期 2.4.2 android进程 2.5 activity的生命周期 2.5.1 activity状态 2.5.2 剖析activity 2.6 android进程和线程...

    移动安全系列教学下载共43份.zip

    Android安全开发基础--15--应用程序配置文件详解(AndroidManifest.xml).pdf Android安全开发基础--2--四大组件之活动(Activity).pdf Android安全开发基础--3--四大组件之服务 (Service).pdf Android安全开发基础...

Global site tag (gtag.js) - Google Analytics