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的更多相关文章

  1. Parcelable序列化的使用,关于intent.getParcelableArrayExtra的使用

    Parcelable相较于Serializable的效率更高 public class ChargeMode implements Parcelable{ public String name; pu ...

  2. android Intent介绍

    Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 ...

  3. 很不错的Intent用法 适用于正在开发的伙伴。自己看到了,也分享给大家吧。

    本文介绍Android中Intent的各种常见作用. 1 Intent.ACTION_MAIN String: android.intent.action.MAIN 标识Activity为一个程序的开 ...

  4. 在Android中Intent的概念及应用(二)——Intent过滤器相关选项

    一.如果多个Activity拥有同一个Intent Action,启动时用同一个Action启动会是什么情况? 如何指定某一个Activity启动? 在多个Activity拥有同一个Intent Ac ...

  5. 在Android中Intent的概念及应用(一)——显示Intent和隐式Intent

    Intent寻找目标组件的两种方式: 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的. 隐式Intent:通过Intent ...

  6. Android的Intent.FLAG_ACTIVITY_CLEAR_TOP无效

    转载:http://blog.csdn.net/u011361576/article/details/48626237 今天写代码遇到了一个问题: 当 B - A - B 跳转的时候,使用Intent ...

  7. Android基础学习第三篇—Intent的用法

    写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...

  8. Android 笔记 Intent and Bundle day7

    学习了Intent与Bundle的使用,进行应用中的交互 package com.example.intent; import android.app.Activity; import android ...

  9. Android Intent Flags

    Intent,顾名思义,即意图,通常用它来启动一个应用程序组件( Activity, Service, 或者 BroadCast Receiver ).在启动一个新的 Activity 时,可以通过给 ...

随机推荐

  1. angular js 在ie11 下的get请求缓存问题的解决办法

    使用angularjs 1.x开发的应用在ie11 下回碰到各种怪异的情况:一般表现在:卡,慢,丑. 还有另外一种情况,就是:get请求被缓存,导致页面数据没有刷新.今天我们就来解决这个问题. 几行代 ...

  2. 51Nod 1268 和为K的组合

    51Nod  1268  和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...

  3. linux基础-磁盘阵列(RAID)实例详解

    磁盘阵列(RAID)实例详解 raid技术分类 软raid技术 硬raid技术 Raid和lvm的区别 为什么选择用raid RAID详解 RAID-0 RAID-1 RAID-5 Raid-10 R ...

  4. C#设计模式(1)——单例模式

    一.概念:确保一个类只有一个实例,并提供一个全局访问点. 二.单例模式具备如下几个特点: 1.只有一个实例. 2.能够自我实例化. 3.提供全局访问点.  三.代码实现 1.简单实现 /// < ...

  5. SQL语句-创建索引

    语法:CREATE [索引类型] INDEX 索引名称ON 表名(列名)WITH FILLFACTOR = 填充因子值0~100 GO USE 库名GO IF EXISTS (SELECT * FRO ...

  6. zrt中文题

    orzzrt.... 题意:给n个点n条边,问能形成几个无向连通图公式:ans=Σ(k=3~n){[n^(n-k)]* (n-1)!/2(n-k)!}推导:ans=Σ(k=3~n)(f(n,k)*h( ...

  7. JS三大特性

    抽象 在分析三大特性之前我们要先了解什么叫抽象. 定义: 在定义一个类的时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板),这种研究问题的方法就称为抽象 一.封装 定义: ...

  8. Markdown编辑器测试

    Markdown 我是二级标题 public void add(int a,int b){ } 我是引用 我是分割线 - - - 1.x小项目1 2.项目2 无标题 无标题 家畜 ''' 代码块 '' ...

  9. MySql 小记

    MySql  简单 小记 以备查看 1.sql概述 1.什么是sql? 2.sql发展过程? 3.sql标准与方言的关系? 4.常用数据库? 5.MySql数据库安装? 2.关键概念 表结构----- ...

  10. 查看IO负载

    负载(load)是linux机器的一个重要指标,直观了反应了机器当前的状态.如果机器负载过高,那么对机器的操作将难以进行. Linux的负载高,主要是由于CPU使用.内存使用.IO消耗三部分构成.任意 ...