显式启动activity
直接在Intent中指定目标Activity.class,该activity必需在本应用中
Intent itet = new Intent(MainActivity.this,MyAty.class);
startActivity(itet);
即使在acitvity中写了intent-filer但是忽略掉intent-filer中的内容
隐式启动activity
不是通过xxx.class而是通过<activity>的<filter>过滤,目标activity可不在本应用中
常用的<filter>子标签:<action>,<data>等
配置AndroidManifest.xml
启动的代码
<intent-filter >
<category android:name="android.intent.category.DEFAULT" />
<action android:name="com.example.dfe32.learnintent.MyAty" />
</intent-filter>
<span style="white-space:pre"> </span>Intent itet = new Intent("com.example.f34re.learnintent.MyAty");
//多个activity有相同的action时,它们都被启动多个供选择
startActivity(itet);
隐式启动activity时有多个activity匹配时
多个activity有相同的action时,它们都被启动多个供选择,可增加过滤选项,如<data>
<intent-filter >
<category android:name="android.intent.category.DEFAULT" />
<action android:name="com.example.dfe32.learnintent.MyAty" />
<data android:scheme="app" />
</intent-filter>
Intent itet = new Intent("com.example.4tdd.learnintent.MyAty", Uri.parse("app://参数"));//"app://"是协议名
startActivity(itet);