Android应用A启动应用B的某个Activity
2016-07-11 01:44
417 查看
今天问了自己一个非常基础问题,如题,意料之外居然卡在这里了,而且还卡了不只一会会。隐式启动的方式有很多设置方法,下面记录两种非常简单的方式。
使用intent.setComponent
这段代码的作用是在App A中启动App B中的SecondActivity,我在这里犯了两个错误,所以一直没能成功。
第一个错误:ComponentName构造中的两个参数,包名都是App B中的包名,而我由于直觉错误,第一个包名写成了App A中的包名。
第二个错误:App B中的SecondActivity没有指定action。
action标签一定要有,action name可以随意取值,否则会报错:Permission Denial: starting Intent。你会发现App A中启动App B的SecondActivity的时候startActivity(intent)并没有指定action,但是真真切切的启动了SecondActivity,而且APP B中的intent-filter里面没有这行代码:
我也不明白怎么回事呢。
使用intent.setAction
App A中的隐式启动代码:
App B中的SecondActivity intent-fiter配置:
这种方式一定要加上
否则也是匹配不到的,记得以前在书中看到,隐式启动的时候会默认执行这样一行代码:
所以,这里配置这个标签也就不稀奇了。不过第一种方式却可以不用配置,但是第一种方式必须配置action。
使用intent.setComponent
Intent intent = new Intent(); ComponentName componentName = new ComponentName("com.example.lxq.app2","com.example.lxq.app2.SecondActivity"); intent.setComponent(componentName); startActivity(intent);
这段代码的作用是在App A中启动App B中的SecondActivity,我在这里犯了两个错误,所以一直没能成功。
第一个错误:ComponentName构造中的两个参数,包名都是App B中的包名,而我由于直觉错误,第一个包名写成了App A中的包名。
第二个错误:App B中的SecondActivity没有指定action。
<activity android:name=".SecondActivity"> <intent-filter> <action android:name="android.intent.action.VIEW" /> </intent-filter> </activity>
action标签一定要有,action name可以随意取值,否则会报错:Permission Denial: starting Intent。你会发现App A中启动App B的SecondActivity的时候startActivity(intent)并没有指定action,但是真真切切的启动了SecondActivity,而且APP B中的intent-filter里面没有这行代码:
<category android:name="android.intent.category.DEFAULT"/>
我也不明白怎么回事呢。
使用intent.setAction
App A中的隐式启动代码:
Intent intent = new Intent(); intent.setAction("lxq.example.action"); startActivity(intent);
App B中的SecondActivity intent-fiter配置:
<activity android:name=".SecondActivity"> <intent-filter> <action android:name="lxq.example.action" /> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
这种方式一定要加上
<category android:name="android.intent.category.DEFAULT"/>
否则也是匹配不到的,记得以前在书中看到,隐式启动的时候会默认执行这样一行代码:
intent.addCategory(Intent.CATEGORY_DEFAULT)
所以,这里配置这个标签也就不稀奇了。不过第一种方式却可以不用配置,但是第一种方式必须配置action。
相关文章推荐
- Android开发——Retrofit2.0 工具类
- Android外部SD卡的读取
- Android事件分发机制
- Android 画图流程
- android关于AndroidManifest.xml详细分析
- AndroidManifest详解之Application(有图更好懂)
- android:configChanges属性
- android final用法
- Android应用按Home键再从图标启动会再次经过LAUNCHER启动页
- Android学习记录:界面设计
- android 中图片的轮播ConvenientBanner
- 安卓中无限轮播的实现
- # android studio使用遇到的问题
- android事件分发机制
- Android TV开发
- Android Studio 完美修改应用包名
- Android开发艺术探索笔记_第二章 IPC机制
- android查看Logcat
- 根据悍马病毒小结android病毒如何提取root权限
- windows下通过命令行启动android studio自带的安卓模拟器