1、显示启动方式:
a、Activity直接条状
Intent intent = new Intent(A.this,B.class);
intent.putExtra(“key”,”value”);//跳转时传递参数
startActivity(intent);
使用场景:应用内部跳转,频率较高
b、包名、类名
Intent intent = new Intent();
intent.setClassName(“com.shy”,”com.shy.B.class”);
intent.putExtra(“key”,”value”);//跳转时传递参数
startActivity(intent);
使用场景:内部跳转+外部跳转
c、ComponentName跳转
Intent intent = new Intent();
intent.setComponent(new Component(“com.shy”,”com.shy.B.class”));
intent.putExtra(“key”,”value”);//跳转时传递参数
startActivity(intent);
使用场景:内部跳转+外部跳转
2、隐式跳转
AndroidManifest.xml中定义某个Activity的intent-fliter
<intent-filter>
<action android:name=”com.example.activity.ACTION_START” />
<category android:name=”android.intent.category.DEFAULT” />
<category android:name=”com.example.activity.ACTION_START” />
</intent-filter>
Activity中
Intent intent = new Intent(“com.example.activity.ACTION_START”);
//android.intent.category.DEFAULT是一种默认的category,在startActivity时自动添加
intent.addCategory(“com.example.activity.ACTION_START”);
startActivity(intent);
隐式启动,在启动的时候是不明确的,需要匹配系统或AndroidManifest.xml中的intent-filter定义,只有action和category和data完全匹配时,才会启动.