componentname?android中componentname怎么使用
朋友们,你是否曾想过深入了解componentname和android中componentname怎么使用的内涵?在本文中,我将为你详细解析这两个话题,希望能给你带来全新的视角和思考。
android中多个intent.setCompontent没用
Intent查找组件策略,其中一种方法就是显示查找,即通过组件名称(Component name)来查找。
Intent的组件名称对象由CompontentName类来封装,组件名称包含包名称和类名称,被声明在AndroidManifest.xml文件中。
组件名称通过setComponent()、setClass()、setClassName()设置,通过getComponent()获得。
MainActivity.java主要代码:
//btn01的点击事件
btn01.setOnClickListener( new OnClickListener(){
@Override
public void onClick(View v){
//实例化组件名称
ComponentName cn= new ComponentName(MainActivity.this,
"com.example.intentdemo.MyActivity");
//实例化Intent
Intent intent= new Intent();
//为Intent设置组件名称属性
intent.setComponent(cn);
//启动activity
startActivity(intent);
}
});
MyAcivity.java主要代码:
tv=(TextView)findViewById(R.id.text01);
//获得Intent
Intent intent= this.getIntent();
//获得组件名称
ComponentName cn= intent.getComponent();
//获得包名称
String packagname= cn.getPackageName();
//获得类名称
String className= cn.getClassName();
//显示
tv.setText(packagname+"====="+ className);
intent的component属性的作用是什么,如何定义此属性
在应用中,我们可以以两种形式来使用Intent:
直接Intent:指定了component属性的Intent(调用setComponent(ComponentName)或者setClass(Context, Class)来指定)。通过指定具体的组件类,通知应用启动对应的组件。
间接Intent:没有指定component属性的Intent。这些Intent需要包含足够的信息,这样系统才能根据这些信息,在在所有的可用组件中,确定满足此Intent的组件。
对于直接Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些间接Intent,通过解析,将 Intent映射给可以处理此Intent的Activity、IntentReceiver或Service。
Intent解析机制主要是通过查找已注册在AndroidManifest.xml中的所有IntentFilter及其中定义的Intent,最终找到匹配的Intent。在这个解析过程中,Android是通过Intent的action、type、category这三个属性来进行判断的,判断方法如下:
如果Intent指明定了action,则目标组件的IntentFilter的action列表中就必须包含有这个action,否则不能匹配;如果Intent没有提供type,系统将从data中得到数据类型。和action一样,目标组件的数据类型列表中必须包含Intent的数据类型,否则不能匹配。
如果Intent中的数据不是content:类型的URI,而且Intent也没有明确指定它的type,将根据Intent中数据的scheme(比如 http:或者mailto:)进行匹配。同上,Intent的scheme必须出现在目标组件的scheme列表中。
如果Intent指定了一个或多个category,这些类别必须全部出现在组建的类别列表中。比如Intent中包含了两个类别:LAUNCHER_CATEGORY和 ALTERNATIVE_CATEGORY,解析得到的目标组件必须至少包含这两个类别。
android中componentname怎么使用
component name是控件的名字。
控件是包含在窗体对象中的对象。每种类型的控件都有自己的一组属性、方法和事件,用于相应的特定目的。
在Visual
Basic中使用的控件分为标准控件、ActiveX控件和可插入对象。
工具箱中包含了标准控件,可用于在窗体中绘制控件。工具箱里的每一个按钮代表一种控件,包括指针、图片框、标签、文本框、框架、命令按钮、复选框、单选框、组合框、列表框、水平滚动条、垂直滚动条、计时器、驱动器列表框、目录列表框、文件列表框、几何图形、直线、图像框和数据控件。
单击工具箱中想要添加的控件,把鼠标指针移动到窗体上,指针会变化为十字形,把十字形指针放置在控件的左上角所在的位置,拖动到右下角,这样就会在窗体上绘制出一个矩形,表明控件的实际大小和位置。控件被正确地防治之后,释放鼠标,控件就会进入窗体中的位置。
控件添加到窗体中之后,它还可以被重新摆放位置或缩放大小。要重新设置控件的位置,可以单击选中它,然后拖动到希望的位置。要缩放控件,直接拖动缩放手柄,调整到合适的大小就可以了。
Name属性总是在设计时被设置。在创建控件时,Visual
Basic会给它一个默认的名称,表明了控件的类型,再加一个整数。在应用程序开发的前期修改Name属性是很重要的,因为控件的名称在程序中用来指代控件。如果修改了控件的名称,那么任何其事件里的程序或任何引用了原来的名称的程序,都不会再运行。
好了,文章到此结束,希望可以帮助到大家。