- 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。
- 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。
1.显式启动Activity:
- //显示方式声明Intent,直接启动SecondActivity
- Intent it = new Intent(MainActivity.this,SecondActivity.class);
- //启动Activity
- startActivity(it);
Manifest.xml中声明如下:
- <activity android:name=".SecondActivity"
- android:label="@string/app_name">
- </activity>
2.隐式启动Activity:
- Intent it = new Intent();
- //设置Intent的Action属性
- it.setAction("com.android.activity.MY_ACTION");
- // 启动Activity
- startActivity(it);
Manifest.xml声明如下:
- <activity android:name=".SecondActivity" >
- <intent-filter>
- <action android:name = "com.android.activity.MY_ACTION" />
- <category android:name = "android.intent.category.DEFAULT" />
- </intent-filter>
- </activity>
3.service:
隐式启动
<service android:name=".service">
<intent-filer>
<action android:name="com.android.service"/>
<intent-filer>
</service>
Intent serviceIntent=new Intent();
serviceIntent.setAction("com.android.service");
startService(serviceIntent);
显示启动
final Intent serviceIntent=new Intent(this,service.class);
startService(serviceIntent);
如果在同一个包中。两者都可以用。在不同包时。只能用隐式启动