android intent隐式调用之一个应用程序启动另一个应用程序
2015-07-17 14:00
405 查看
理解Intent的关键之一是理解清楚Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用类似;另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,这种方式与函数调用差别比较大,有利于降低发送者和接收者之间的耦合。另外Intent除了发送外,还可用于广播.
显示调用 1.Intent intent = new Intent(); intent.setClass(A.this,B.class); //intent.setClassName("com.view","com.view.B");前者是A的包名,后者是B的代包类名
startActivity(Intent);
隐式调用:private static String MY_ACTION = "com.view.my_action";
Intent intent = new Intent(); intent.setAction(MY_ACTION);
或者// Intent intent = new Intent(MY_ACTION);
startActivity(Intent);
隐式调用注意不只是在AndroidManifest.xml文件中声明,还要加上intent-filter
在B类的activity中加上:
<intent-filter>
<action android:name="com.view.my_action"/> <!-- 自定义 -->
</intent-filter>
加上这句话就可以跳转到B类了
如果是想启动另外一个应用程序,如B类是在另外一个应用程序的入口,在其activity中再另外加上一个intent-filter
<activity android:name=".B" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.view.my_action"/>
<action android:name="android.intent.action.DEFAULT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
显示调用 1.Intent intent = new Intent(); intent.setClass(A.this,B.class); //intent.setClassName("com.view","com.view.B");前者是A的包名,后者是B的代包类名
startActivity(Intent);
隐式调用:private static String MY_ACTION = "com.view.my_action";
Intent intent = new Intent(); intent.setAction(MY_ACTION);
或者// Intent intent = new Intent(MY_ACTION);
startActivity(Intent);
隐式调用注意不只是在AndroidManifest.xml文件中声明,还要加上intent-filter
在B类的activity中加上:
<intent-filter>
<action android:name="com.view.my_action"/> <!-- 自定义 -->
</intent-filter>
加上这句话就可以跳转到B类了
如果是想启动另外一个应用程序,如B类是在另外一个应用程序的入口,在其activity中再另外加上一个intent-filter
<activity android:name=".B" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.view.my_action"/>
<action android:name="android.intent.action.DEFAULT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
相关文章推荐
- Android studio 混淆代码
- Android中Listview(五)--拖拽listview
- 【Android学习】实现卡片式ListView
- android:drawable的一些总结
- Android 通过反射让SQlite建表如此简单
- 关于Android SDK Manager更新速度慢的解决方法
- Genymotion不能成功开启Android5.0模拟器的解决方案
- Android淘宝电影日期选项卡的实现-tab 栏居中滚动
- 关于无法下载android开发工具的解决方法
- 为什么Android手机越用越慢
- 关于Android SDK Manager无法更新的解决办法
- Android开发工具之ADT
- Android开发工具之adt-bundle-windows
- 提升Android ListView性能的几个技巧
- android: shape、selector、layer-list的使用做出设置按钮样式
- Android 使用ContentProvider(内容提供者)查询手机联系
- Android 仿余额宝数字动画实现
- Android应用经典主界面框架之二:仿网易新闻客户端、CSDN 客户端 (Fragment ViewPager)
- 【Android】Android客户端以线程的方式从服务器的PHP读取Mysql
- 开始_android的_第一个应用(Hello World)(一)