显式和隐式启动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);
如果在同一个包中。两者都可以用。在不同包时。只能用隐式启动
显式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);
如果在同一个包中。两者都可以用。在不同包时。只能用隐式启动
相关文章推荐
- QtDesigner向toolBar中添加action
- 面试题42:数字在排序数组中出现的次数
- mysql 性能参数 innodb_flush_log_at_trx_commit
- Oracle lsnrctl--监听器的启动和关闭
- 手把手带你画一个 时尚仪表盘 Android 自定义View
- 常用HTML meta 标签属性(网站兼容与优化需要),meta标签
- 手把手带你画一个 时尚仪表盘 Android 自定义View
- 2.3.1 在项目中查找文件
- leetcode33 Search in Rotated Sorted Array
- 关于WIN7开始“搜索程序和文件”
- logback打印不出日志
- jsp当中JSTL对特殊字符的处理:EL运算符
- VirtualBox 共享文件夹
- C#文件操作
- 有奖试读—Windows PowerShell实战指南(第2版)
- 有奖试读—Windows PowerShell实战指南(第2版)
- C#之构造函数
- 在类文件cls中定义一个含有3个参数的命令 (LaTeX)
- STM32 FOC Surface Mounted PMSM与Internal PMSM 的区别
- 关于MyBatis sqlSession的一点整理