Android(安卓)中使用 ComponentName 类
16lz
2022-04-01
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点击打开链接
更多相关文章
- Android(安卓)获取activity栈中activity
- Android之ViewFlipper的使用与ListView的分页加载
- 关于Android中的SQLite使用
- Android(安卓)Google地图那些事
- Android之百度地图开发,包含定位,覆盖物,经纬度位置转换,长按设置中
- Android创建快捷方式图标
- android发送QQ邮件(带附件)
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用