关于AndroidManifest.xml中activity标签
来源:互联网 发布:溪谷软件 编辑:程序博客网 时间:2024/04/29 00:50
一般情况下,在新建一个activity后,为了使intent可以调用此活动,我们要在androidManifest.xml文件中添加一个<activity>标签,<activity>标签的一般格式如下:
<activity android:name="my.test.intents.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>其中,"android:name"是活动对应的类名称,"android:label"是活动标题栏显示的内容,<intent-filter>是意图筛选器,<action>是动作名称,是指intent要执行的动作,<category>是类别名称,一般情况下,每个<intent-filter> 中都要显示指定一个默认的类别名称,即<category android:name="android.intent.category.DEFAULT" />,但是上面的代码中没有指定默认类别名称,这是一个例外情况,因为其<intent-filter> 中的<action>是"android.intent.action.MAIN",意思是这项活动是应用程序的入口点,这种情况下可以不加默认类别名称。
当然,除<action>和<category>以外,<intent-filter>中还有很多其他元素,在这里不详述。
上面的代码是androidManifest.xml中定义程序入口活动的例子,下面我们写一个自定义的例子:
<activity android:name=".MyBrowserActivity" android:label="My Activity" > <intent-filter> <action android:name="my.test.MyBrowser"/> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="http"/> </intent-filter> </activity>在这个<activity>标签中,我们指定活动的类为MyBrowserActivity.class,活动的标题显示为"My Activity",<action android:name="my.test.MyBrowser"/>意味着其他活动可以通过my.test.MyBrowser动作来调用这个活动,"my.test.MyBrowser"只是我们定义的一个动作的名称,写成包的形式是因为这样使我们更容易理解它的含义,如果我们把"my.test.MyBrowser"改成任意的内容如:"somethingelse",同样,我们可以通过这个新的动作名称,来调用这个活动。<data> 元素指定了活动期望的数据类型,在这里,它期望的数据要以http://前缀开头。
正如前文所说,一般情况下,每个<intent-filter>中都要显示地指定一个默认的类别名称,在我们自定义的活动中,我们指定了这个默认类别,假如没有这行代码,这个活动将不能被其他活动调用,一旦调用,就会导致程序的崩溃。这里有个小技巧,我们可以通过使用createChooser()来防止这种原因的崩溃,如下所示:
public void onClick(View view){Intent i = new Intent("my.test.MyBrowser");i.setData(Uri.parse("http://www.baidu.com"));startActivity(Intent.createChooser(i, "Open URL using..."));}上面的函数实现点击按钮打开浏览器并浏览百度主页的功能,如果我们注释掉androidManifest.xml中对应activity的默认类别名称,在调用这个活动时(点击Launch My Browser按钮),不会产生崩溃,而是会弹出一个选择框,标题为"Open URL using...",内容为“无法找到应用程序以执行该操作”,如下图所示:
以上是对androidManifest.xml中的<activity>标签的一点总结,那么究竟哪种情况下需要指定默认类别,哪种请款下不需要指定呢,以及使用intent调用活动的整个流程是什么样的呢?详见http://blog.csdn.net/iverain/article/details/38660271 点击打开链接
0 0
- 关于AndroidManifest.xml中activity标签
- AndroidManifest文件中activity标签中的内容
- AndroidManifest.xml中Activity的定义
- AndroidManifest.xml标签属性
- [整理] AndroidManifest.xml 标签
- android关于声明不同的activity在androidmanifest.xml里
- Android中AndroidManifest.xml中<application>标签的常用元素
- AndroidManifest.xml中声明不同包中的Activity
- 从AndroidManifest.xml中获取已注册Activity的方法
- AndroidManifest.xml中声明不同包中的Activity
- AndroidManifest.xml中Activity ConfigChanges属性的用法
- AndroidManifest.xml中android:label标签的使用
- android AndroidManifest.xml中android:process标签说明
- android中获取AndroidManifest.xml中的MetaData标签值
- 关于 AndroidManifest.xml
- 关于AndroidManifest.xml
- 一、关于AndroidManifest.xml
- 关于AndroidManifest.xml
- 下拉刷新,上拉加载更多 PullToRefresh
- ADAM-4117快速入门手册-4-20模块知识及编程
- JAVA格式化时间日期
- POJ 3692 Kindergarten 最大团->最大独立集
- poj 1830开关问题
- 关于AndroidManifest.xml中activity标签
- 交通灯管理系统
- 再也不想给别人打工了,想自己做点生意,做啥能赚钱呢
- 再也不想给别人打工了,想自己做点生意,做啥能赚钱呢
- CF 366C Dima and Salad [天平DP]
- Servlet生命周期与工作原理
- 再也不想给别人打工了,想自己做点生意,做啥能赚钱呢
- HDU2089 不要62 【打表】
- OpenStack的网络及简单操作