Intent寻找目标组件的两种方式:

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

隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。

一、显示Intent:

创建一个Activity的完整过程:

1、手动创建一个类,让其继承自Activity:

  public class MyAty extends Activity

2、让其绑定一个视图:

  public class MyAty extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.myaty);

    }
  }

3、AndroidMainfest.xml文件进行Intent的配置:

  <activity android:name=".MyAty"/>  <!--<activity android:name="com.w.learnintent.MyAty"/>-->

4、启动的功能代码:

  activity_main.xml文件中:<Button android:text="Start MyAty" android:id="@+id/btnStartMyAty" />

  MainActivity.java文件中:

    findViewById(R.id.btnStartMyAty).setOnClickListener(new View.OnClickListener(){
      @Override
      public void onClick(View v) {
        startActivity(new Intent(MainActivity.this,MyAty.class));  //显示Intent
      }

二、隐式Intent:

1、AndroidMainfest.xml文件进行Intent的配置:

  <activity android:name=".MyAty">
    <intent-filter>
      <category android:name="android.intent.category.DEFAULT"/>
      <action android:name="com.w.learnIntent.intent.action.MyAty"/>
    </intent-filter>
  </activity>

2、在被启动的Activity——MyAty.java中创建一个字符串ACTION:

  public static final String ACTION = "com.w.learnIntent.intent.action.MyAty";

3、启动的功能代码:

  startActivity(new Intent(MyAty.ACTION));  //隐式Intent

三、不同应用程序之间(隐式Intent):

1、在原有项目基础上新建module,创建另一个程序。

2、原有项目AndroidMainfest.xml文件进行Intent的配置:

  <activity android:name=".MyAty" android:exported="false"> <!-- android:exported:该服务是否能够被其他应用程序组件调用或跟它交互-->
    <intent-filter>
      <category android:name="android.intent.category.DEFAULT"/>
      <action android:name="com.w.learnIntent.intent.action.MyAty"/>
    </intent-filter>
  </activity>

3、新项目的MainActivity.java文件中:

  findViewById(R.id.btnStartMyAty).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      try {
          startActivity(new Intent("com.w.learnIntent.intent.action.MyAty"));
        }catch(Exception e){
      Toast.makeText(MainActivity.this,"无法启动指定的Activity",Toast.LENGTH_SHORT).show();   //Toast.LENGTH_SHORT短时间呈现
    }
  }

在Android中Intent的概念及应用(一)——显示Intent和隐式Intent的更多相关文章

  1. android隐式intent使用场景解析

    Android 隐式intent相信大家都有用过,大部分场景我们用显式intent已经能满足我们的业务需求,隐式intent大部分都是用来启动系统自带的Activity或Service之类的组件.昨天 ...

  2. 显式Intent和隐式Intent

    http://blog.csdn.net/qs_csu/article/details/7995966 对于明确指出了目标组件名称的Intent,我们称之为“显式Intent”. 对于没有明确指出目标 ...

  3. Android开发之隐式Intent中Intent-filter的三个属性-action,category,data

    使用隐式Intent时,需要使用到意图过滤器Intent-filter.Intent-filter含有三个属性:action,category,data.通过这三个属性的组合,可以启动想要启动的act ...

  4. Android开发学习笔记:浅谈显示Intent和隐式Intent

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/655132 ...

  5. Android开发学习之浅谈显示Intent和隐式Intent

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

  6. Android -- 两个activity界面的切换, 显示Intent 和 隐式Intent,putExtra传递数据

    1. 两个Activity之间可以通过Intent切换, 包括显示Intent 和 隐式Intent. 实例代码 MainActivity.java public class MainActivity ...

  7. 【Android】6.0 添加Menu菜单组件、Intent启动活动、显式Intent、隐式Intent

    1.0 在helloworld项目基础上创建活动SecondActivity: 2.0 其中main.xml: <?xml version="1.0" encoding=&q ...

  8. Android 隐式 Intent 跳转注意事项

    前几天正好看到<阿里巴巴 Android 开发手册>中提到的: “Activity 间通过隐式 Intent 的跳转,在发出 Intent 之前必须通过 resolveActivity 检 ...

  9. Android基础Activity篇——其他隐式Intent

    1.使用隐式Intent调用浏览器 修改FirstActivity中的按钮点击事件代码. Intent intent=new Intent(Intent.ACTION_VIEW); intent.se ...

随机推荐

  1. MySql踩坑总结

    衣带渐宽终不悔,为伊消得人憔悴,众里寻他千百度,蓦然回首,那人却在灯火阑珊处好通顺的句子哈哈 转了那么多弯,才明白问题就在一个地方.睡觉之前想明白了问题,还是经验太少.王国维的治学三境界: 昨夜西风凋 ...

  2. TNS-12535: TNS:operation timed out案例解析

    一数据库突然连接不上,在自己电脑上使用SQL Developer也连接不上.立即使用SecureCRT连接上了这台服务器,从下面几个方面检查. 1:检查了数据库的状态是否正常 $ sqlplus / ...

  3. ASP.NET Cookie(一)--基本应用

    Cookie提供了一种在Web应用程序中存储用户特定信息的方法.例如,当用户访问您的站点时,您可以使用Cookie存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以前存储的信息 ...

  4. 编译安装mysql

    参考:http://www.centoscn.com/CentosServer/www/2015/0422/5245.html 安装mysql5.6.17 1.按照标准需要给mysql创建所属用户和用 ...

  5. What's new in Windows 10 Enterprise with Microsoft Edge.(Windows 10 新功能)

    What's new in Windows 10 Enterprise with Microsoft Edge --带有Edge浏览器的Windows 10 企业版的新功能 本文摘录自公司群发邮件, ...

  6. 【转】XenServer架构之XAPI

    一.XAPI对资源池的管理 作为XenServer的管理工具集,XAPI管理XenServer的主机,网络和存储.不管是OpenStack还是CloudStack,如果使用XenServer作为虚拟化 ...

  7. 怎么在GitHub上寻找开源项目呢

    find projects GitHub Explore: Popular and trending projects. GitHub Stars: Projects starred by other ...

  8. 数据库 数据库SQL语句二

    单行函数 --操作数据对象 --接受参数返回一个结果 --只对一行进行变换 --每行返回一个结果 --可以转换数据类型 --可以嵌套 --参数可以是一列或一个值 字符函数 SQL> select ...

  9. [LeetCode] Word Frequency 单词频率

    Write a bash script to calculate the frequency of each word in a text file words.txt. For simplicity ...

  10. .NET MVC实现多图片上传并附带参数(ajaxfileupload)

    做网站呢,都免不了要做图片上传. 还记得去年做微信的时候用WebAPI+ajaxfileupload.js做了一个能够附带参数上传的功能,博文地址:.NET WebAPI 实现图片上传(包括附带参数上 ...