您当前的位置:首页 > 互联网教程

android项目怎么注册activity

发布时间:2025-05-12 06:29:24    发布人:远客网络

android项目怎么注册activity

一、android项目怎么注册activity

1、打开AndroidManifest.xml文件

<activity android:name="com.example.testand.MainActivity"/>

com.example.testand.MainActivity是activity在工程中的路径。这是最简单的一个注册

<activity android:allowTaskReparenting=["true"|"false"]

android:alwaysRetainTaskState=["true"|"false"]

android:clearTaskOnLaunch=["true"|"false"]

android:configChanges=["mcc","mnc","locale",

"touchscreen","keyboard","keyboardHidden",

"navigation","orientation","screenLayout",

android:enabled=["true"|"false"]

android:excludeFromRecents=["true"|"false"]

android:exported=["true"|"false"]

android:finishOnTaskLaunch=["true"|"false"]

android:icon="drawable resource"

android:label="string resource"

android:launchMode=["multiple"|"singleTop"|

"singleTask"|"singleInstance"]

android:multiprocess=["true"|"false"]

android:noHistory=["true"|"false"]

android:screenOrientation=["unspecified"|"user"|"behind"|

android:stateNotNeeded=["true"|"false"]

android:taskAffinity="string"

android:theme="resource or theme"

android:windowSoftInputMode=["stateUnspecified",

"stateUnchanged","stateHidden",

"stateAlwaysHidden","stateVisible",

"stateAlwaysVisible","adjustUnspecified",

"adjustResize","adjustPan"]>

(注:有些在application中重复的就不多阐述了)

1、android:alwaysRetainTaskState

是否保留状态不变,比如切换回home,再从新打开,activity处于最后的状态。比如一个浏览器拥有很多状态(当打开了多个TAB的时候),用户并不希望丢失这些状态时,此时可将此属性设置为true

比如 P是 activity, Q是被P触发的 activity,然后返回Home,重新启动 P,是否显示 Q

当配置list发生修改时,是否调用 onConfigurationChanged()方法比如"locale|navigation|orientation".

这个我用过,主要用来看手机方向改变的. android手机在旋转后,layout会重新布局,如何做到呢?

正常情况下.如果手机旋转了.当前Activity后杀掉,然后根据方向重新加载这个Activity.就会从onCreate开始重新加载.

如果你设置了这个选项,当手机旋转后,当前Activity之后调用onConfigurationChanged()方法.而不跑onCreate方法等.

是否可被显示在最近打开的activity列表里,默认是false

当用户重新启动这个任务的时候,是否关闭已打开的activity,默认是false

如果这个属性和allowTaskReparenting都是true,这个属性就是王牌。Activity的亲和力将被忽略。该Activity已经被摧毁并非re-parented

6、android:launchMode(Activity加载模式)

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式

standard、singleTop、singleTask、singleInstance(其中前两个是一组、后两个是一组),默认为standard

standard:就是intent将发送给新的实例,所以每次跳转都会生成新的activity。

singleTop:也是发送新的实例,但不同standard的一点是,在请求的Activity正好位于栈顶时(配置成singleTop的Activity),不会构造新的实例

singleTask:和后面的singleInstance都只创建一个实例,当intent到来,需要创建设置为singleTask的Activity的时候,系统会检查栈里面是否已经有该Activity的实例。如果有直接将intent发送给它。

首先说明一下task这个概念,Task可以认为是一个栈,可放入多个Activity。比如启动一个应用,那么Android就创建了一个Task,然后启动这个应用的入口Activity,那在它的界面上调用其他的Activity也只是在这个task里面。那如果在多个task中共享一个Activity的话怎么办呢。举个例来说,如果开启一个导游服务类的应用程序,里面有个Activity是开启GOOGLE地图的,当按下home键退回到主菜单又启动GOOGLE地图的应用时,显示的就是刚才的地图,实际上是同一个Activity,实际上这就引入了singleInstance。singleInstance模式就是将该Activity单独放入一个栈中,这样这个栈中只有这一个Activity,不同应用的intent都由这个Activity接收和展示,这样就做到了共享。当然前提是这些应用都没有被销毁,所以刚才是按下的HOME键,如果按下了返回键,则无效

具体可看该篇文章:

当用户从Activity上离开并且它在屏幕上不再可见时,Activity是否从Activity stack中清除并结束。默认是false。Activity不会留下历史痕迹

默认为unspecified:由系统自动判断显示方向

landscape横屏模式,宽度比高度大

behind模式:和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)

sensor模式:有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换

nosensor模式:忽略物理感应器,这样就不会随着用户旋转设备而更改了

activity被销毁或者成功重启时是否保存状态

11、android:windowSoftInputMode

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

【A】当有焦点产生时,软键盘是隐藏还是显示

【B】是否减少活动主窗口大小以便腾出空间放软键盘

【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

【C】stateHidden:用户选择activity时,软键盘总是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

【E】stateVisible:软键盘通常是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

二、Android Studio怎样新建Activity

1、首先,新建一个项目,新建项目的方法我在前面的经验中已讲到过,请查阅,新建一个项目然后,单击项目的分类区

2、然后再项目的下拉菜单中选中“Android”菜单即可

3、然后项目区域会发生变化,只有两个选项,单击“app”,展开

4、在“app”展开的界面中选择“java”选项,依次展开

5、展开“java”选项看到的是项目的包,此时我们已经看到了和Eclipse相似的界面,但是还要在展开包

6、再一次展开,我们看到了我们项目的真正的类所在的文件夹,即包名,找到自己要新建Activity的包名,右键单击

7、选择“New”菜单后,会发现“New”菜单又下一级子菜单,然后单击下一级子菜单的“Java Class”菜单

8、这是会弹出“Create New Class”对话框,输入Activity的名字,然后点击确定

9、单击“OK”按钮后,我们会发现。项目的包下已有我们新建的Class,即Activity了,新建好后,我们还要继承Activity,这样才是一个真正的Activity

三、Android是如何组织Activity的

1、开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用,一般我们知道了另一个应用的包名和MainActivit y的名字之后便可以直接通过如下代码来启动。

2、Android是由Google公司和开放手机联盟领导并开发的一种基于Linux的自由且开放源代码的操作系统,主要使用于移动设备。

3、其最初由Andy Rubin开发,后被Google于2005年8月收购,之后Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟,共同研发改良Android系统,完成开发后,Google以Apache开源许可证的授权方式,发布了Android的源代码。

4、Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

5、Android一词最早出现于法国作家利尔亚当(Auguste Villiers de l'Isle-Adam)在1886年发表的科幻小说《未来夏娃》(L'ève future)中。他将外表像人的机器起名为Android。