首先建一个新的Activity:Aty1,之后mainActivity中放两个按钮,不要忘了在AndroidManifest中声明这个Activity。
一、通过Intent对象的setComponent()方法,传递ComponentName对象,第一个参数为包名,第二个参数为类的完全限定名称,称为显式Intent。
代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.open_aty1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent();
i.setComponent(new ComponentName("com.example.test007","com.example.test007.Aty1"));
startActivity(i);
}
});
二、通过action启动,与action匹配的Activity可能有多个,通过操作系统进行匹配,称为隐式Intent,<Intent-filter>为Activity指定地址,相当于网站的URL
代码:
findViewById(R.id.open_aty1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent i = new Intent("android.intent.action.Aty1");
startActivity(i);
}
});
action标识一个Activity的地址,上面的"android.intent.action.Aty1"就是intentfilter标识的地址:
<activity android:name="Aty1">
<intent-filter>
<action android:name="android.intent.action.Aty1"/>
<category android:name="android.intent.category.DEFAULT"/>;
</intent-filter>
</activity>