显式和隐式启动Activity、Service

Intent寻找目标组件的两种方式:

  • 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。
  • 隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。

1.显式启动Activity:

  1. //显示方式声明Intent,直接启动SecondActivity
  2. Intent it = new Intent(MainActivity.this,SecondActivity.class);
  3. //启动Activity
  4. startActivity(it);

Manifest.xml中声明如下:

  1. <activity android:name=".SecondActivity"
  2. android:label="@string/app_name">
  3. </activity>

2.隐式启动Activity:

  1. Intent it = new Intent();
  2. //设置Intent的Action属性
  3. it.setAction("com.android.activity.MY_ACTION");
  4. // 启动Activity
  5. startActivity(it);

Manifest.xml声明如下:

  1. <activity android:name=".SecondActivity" >
  2. <intent-filter>
  3. <action android:name = "com.android.activity.MY_ACTION" />
  4. <category android:name = "android.intent.category.DEFAULT" />
  5. </intent-filter>
  6. </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);
如果在同一个包中。两者都可以用。在不同包时。只能用隐式启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值