关于AndroidManifest.xml中activity标签

        一般情况下,在新建一个activity后,为了使intent可以调用此活动,我们要在androidManifest.xml文件中添加一个标签,标签的一般格式如下:

        
            
                
                
            
        
        其中,"android:name"是活动对应的类名称,"android:label"是活动标题栏显示的内容,是意图筛选器,是动作名称,是指intent要执行的动作,是类别名称,一般情况下,每个 中都要显示指定一个默认的类别名称,即,但是上面的代码中没有指定默认类别名称,这是一个例外情况,因为其 中的是"android.intent.action.MAIN",意思是这项活动是应用程序的入口点,这种情况下可以不加默认类别名称。

        当然,除以外,中还有很多其他元素,在这里不详述。

        上面的代码是androidManifest.xml中定义程序入口活动的例子,下面我们写一个自定义的例子:

        
            
                
                
                
            
        
        在这个标签中,我们指定活动的类为MyBrowserActivity.class,活动的标题显示为"My Activity",意味着其他活动可以通过my.test.MyBrowser动作来调用这个活动,"my.test.MyBrowser"只是我们定义的一个动作的名称,写成包的形式是因为这样使我们更容易理解它的含义,如果我们把"my.test.MyBrowser"改成任意的内容如:"somethingelse",同样,我们可以通过这个新的动作名称,来调用这个活动。 元素指定了活动期望的数据类型,在这里,它期望的数据要以http://前缀开头。

        正如前文所说,一般情况下,每个中都要显示地指定一个默认的类别名称,在我们自定义的活动中,我们指定了这个默认类别,假如没有这行代码,这个活动将不能被其他活动调用,一旦调用,就会导致程序的崩溃。这里有个小技巧,我们可以通过使用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标签_第1张图片

        以上是对androidManifest.xml中的标签的一点总结,那么究竟哪种情况下需要指定默认类别,哪种请款下不需要指定呢,以及使用intent调用活动的整个流程是什么样的呢?详见http://blog.csdn.net/iverain/article/details/38660271   点击打开链接


你可能感兴趣的:(android)