Android 中使用 ComponentName 类

来源:互联网 发布:中国网络拍卖平台首页 编辑:程序博客网 时间:2024/05/22 08:36
android中可以使用Intent时 可以用setClass() 还可以使用ComponentName

Java 代码

package com.huawei;import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class Test extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Button btn = (Button) findViewById(R.id.btn);        btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//组件名称,第一个参数是包名,也是主配置文件Manifest里设置好的包名第二个是类名,要带上包名ComponentName com = new ComponentName("com.huawei", "com.huawei.Test1");Intent  intent = new Intent();//设置部件intent.setComponent(com);    Test.this.startActivity(intent);}});    }}


经查看源码发现 Intent 的setClass() 方法的实现正是使用ComponentName 类:

public Intent setClass(Context packageContext,Class<?> cls){   mComponent=new ComponentName(packageContext,cls);return this;}

Intent 的 构造方法也是如此:

public Intent(Context packageContext,Class<?> cls){      mComponent=new ComponentName(packageContext,cls);}

上面例子中的 setComponent()方法:

public Intent setComponent(ComponentName component){      mComponent =component;return this;}

以上可以看出无论那种方法调用的都是相似的代码;

参考:http://hellorheaven.iteye.com/blog/860193点击打开链接

原创粉丝点击