您的位置:首页 > 其它

显式和隐式启动Activity、Service

2016-01-06 15:29 295 查看
Intent寻找目标组件的两种方式:

显式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);

如果在同一个包中。两者都可以用。在不同包时。只能用隐式启动
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: