Intent
1.http://blog.csdn.net/daogepiqian/article/details/50606474
2.http://blog.csdn.net/wulianghuan/article/details/8508848
3.Activity中的action和category可以都相同,这样启动intent时如下

4.部分代码如下:
<activity android:name=".Second_Activity">
<intent-filter>
<action android:name="com.android.activity.MY_ACTION" /> <category android:name="android.intent.category.my" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".Third_Activity">
<intent-filter>
<action android:name="com.android.activity.MY_ACTION" /> <category android:name="android.intent.category.my" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
text1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent it = new Intent();
it.setAction("com.android.activity.MY_ACTION");
it.addCategory("android.intent.category.my");
startActivity(it);
}
});
5.Intent调用另外一个app的界面
<1>
Intent it=new Intent();
/**
* 参数:
* 包名
* 包名+Activity名称
* */
it.setClassName("com.example.customview05imageview", "com.example.customview05imageview.MainActivity");
startActivity(it);
<2>
try{
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.addCategory("com.tupian");
startActivity(intent);
}
catch (Exception e)
{
Toast.makeText(this,"请先安装该app",Toast.LENGTH_SHORT).show();
}
<category 必须加上Default,否则找不到该Acitivity>
<activity android:name=".Main2Activity">
<intent-filter>
<action android:name="android.intent.action.myMainActivity2"/>
<category android:name="com.tupian2" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
6. 效果图:
不同的app,activity,只要action相同。那么通过隐式intent就可以打开app的特定Activity。


7.小结:
一个Activity可以有多个action,也能有多个category。 使用隐式Intent,如果使用了addcategory(),那样activity的配置中除去添加的category,必须要加上category的default值,否则找不到该activity。
当intent使用setaction时,如果多个activity的action相同,则会同时启动调用。
如下代码:则可以启动activity2,activity3的
Intent intent = new Intent("eee") ; // eee 为action
startActivity(intent);
// 如果加上category则需要action和category都相同才能启动
Intent intent = new Intent("eee") ;
intent.addCategory("cate");
startActivity(intent);
<activity android:name=".Main2Activity">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="eee" />
<action android:name="ss" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity> <activity android:name=".Main3Activity">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="eee" />
<action android:name="android.intent.action.SENDTO" />
<category android:name="cate" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
一个activity中可以配置多个<intent-filter>,只需要与其中一个相同,activity即可启动。
Intent的更多相关文章
- Parcelable序列化的使用,关于intent.getParcelableArrayExtra的使用
Parcelable相较于Serializable的效率更高 public class ChargeMode implements Parcelable{ public String name; pu ...
- android Intent介绍
Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 ...
- 很不错的Intent用法 适用于正在开发的伙伴。自己看到了,也分享给大家吧。
本文介绍Android中Intent的各种常见作用. 1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开 ...
- 在Android中Intent的概念及应用(二)——Intent过滤器相关选项
一.如果多个Activity拥有同一个Intent Action,启动时用同一个Action启动会是什么情况? 如何指定某一个Activity启动? 在多个Activity拥有同一个Intent Ac ...
- 在Android中Intent的概念及应用(一)——显示Intent和隐式Intent
Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent ...
- Android的Intent.FLAG_ACTIVITY_CLEAR_TOP无效
转载:http://blog.csdn.net/u011361576/article/details/48626237 今天写代码遇到了一个问题: 当 B - A - B 跳转的时候,使用Intent ...
- Android基础学习第三篇—Intent的用法
写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...
- Android 笔记 Intent and Bundle day7
学习了Intent与Bundle的使用,进行应用中的交互 package com.example.intent; import android.app.Activity; import android ...
- Android Intent Flags
Intent,顾名思义,即意图,通常用它来启动一个应用程序组件( Activity, Service, 或者 BroadCast Receiver ).在启动一个新的 Activity 时,可以通过给 ...
随机推荐
- redis慢查询日志
运维需要记录一下主redis中那些“慢操作”的命令,然后找到相关的业务方,不然的话,阻塞 就不好玩了.然后就直接在redis手册中就找到了相关的命令. SLOWLOG subcommand [argu ...
- poj题目
poj2965 poj1753:标准的BFS+位运算优化 poj1328:线段覆盖变种,把圆对应到线段上,贪心求解 poj2109:高精度开根,二分+高精度,注意要判断答案的位数,如果按照题目给的范围 ...
- REDIS持久化报错失败
redis log报错: [7666] 15 Jan 00:22:36.028 # Error moving temp DB file on the final destination: Invali ...
- .net core 源码解析-web app是如何启动并接收处理请求(二) kestrel的启动
上篇讲到.net core web app是如何启动并接受请求的,下面接着探索kestrel server是如何完成此任务的. 1.kestrel server的入口KestrelServer.Sta ...
- 【转载】<mvc:annotation-driven />注解意义
本文转载自:http://kingliu.iteye.com/blog/1972973 <mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式 ...
- VB6史无前例的子类化之透明按钮
[原创文章,转发请保留版权信息] 作者:mezstd 文章地址:http://www.cnblogs.com/imez/p/3299728.html 效果图: 请原谅笔者无耻地称之为史无前例,至少在笔 ...
- 使用PrintDocument进行打印
背景: 1.在winform中,需要直接调用打印机,进行打印处理 2.找了很多实现方法是web的处理,然后查了下度娘,发现可以使用自带类PrintDocument进行处理,所以就有了这篇文章 说明: ...
- XMind共享未保存的思维导图的教程
我们在XMind 6对导图进行局域网共享时,一般都是对XMind文件先进行保存再共享,那样是忘记保存呢,该如何共享.局域网共享功能是XMind 6特有的功能之一,自是较为完善,性能强大的功能,当然有办 ...
- C#执行Dos命令公用方法
private static string InvokeCmd(string cmdArgs) { string Tstr = ""; Process p = new Proces ...
- Leetcode 60. Permutation Sequence
The set [1,2,3,-,n] contains a total of n! unique permutations. By listing and labeling all of the p ...