使用components有两种方式:
1
2
3
|
ComponentName com =
new
ComponentName(MainActivity.
this
,MyActivity.
class
);
//first
ComponentName com =
new
ComponentName(
"com.example.testcomponent"
,
"com.example.testcomponent.MyActivity"
);
//second
|
第二种方式的第二个参数必须写全包名,不然会报错的。
一样的,主Activity中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
button.setOnClickListener(
new
Button.OnClickListener()
{
@Override
public
void
onClick(View arg0)
{
// TODO Auto-generated method stub
Intent intent =
new
Intent();
ComponentName com =
new
ComponentName(
"com.example.testcomponent"
,
"com.example.testcomponent.MyActivity"
);
intent.setComponent(com);
String s =
"This is a Test."
;
intent.putExtra(
"id"
, s);
startActivity(intent);
}
});
|
在目标Ativity中获取数据和上面是一样的,但是,在目标Activity中就可以获取到源目标,知道是从哪儿传递过来的:
1
2
3
4
5
6
7
8
|
text = (TextView)findViewById(R.id.text);
Intent intent = getIntent();
String str = intent.getStringExtra(
"id"
);
ComponentName com = intent.getComponent();
String pkgName = com.getPackageName();
String className = com.getClassName();
text.setText(str +
"\n"
+ pkgName +
"\n"
+ className);
|
本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1611832,如需转载请自行联系原作者