关闭

Android之Intent的概念与应用

标签: android
127人阅读 评论(0) 收藏 举报
分类:

android中,不同的activity实例可能运行在一个进程中,也可能运行在不同进程中,因此我们需要一种机制帮助我们在activity之间传递消息。android中通过intent对象表示一条消息,一个intent对象不仅包含这个消息的目的地,还可以包含消息的内容。对于一个intent对象,消息的目的地是必须的,内容则是可选的。

一、显式intent

显式intent用法即之前在启动另一个activity时用到的

1、在onCreate()方法中创建intent对象:Intent I = new Intent(currentActivity,goleActivity.class);

2、启动另一个activitystartActivity(i);

【注】需要在AndroidManifest.xml中配置目标activity<activityandroid:name="xxx"/>

 

二、隐式intent

        隐式intent指:创建intent,且不指定被启动的activity

        即在创建intent对象时,不指明目标activity,或者说目标activity是另一个appactivity

 

   1、在AndroidManifest.xml中配置:

            

<activity

android:name=".Atv">

<intent-filter>

<action android:name="com.abc.xxx.intent.action.Atv"/>   约定成俗的格式:包名.intent.action.activity名称

<category android:name="android.intent.category.DEFAULT"/>  DEFAULT意味着该intent的行为方式为一个activity

</intent-filter>

</activity>

 

   2、在被启动的activity中添加静态常量:

            public static finalACTION = "com.abc.xxx.intent.action.Atv";

 

   3、在调用的activityonCreate()的方法中:

     startActivity(new intent(Atv.ACTION));

 

 

   (1)若要启动其他appactivity,则在另一个appactivity中直接: startActivity(newintent("com.abc.xxx.intent.action.Atv"));

   (2)activity只允许其所在的app访问,不能被其他app访问,则

      首先把AndroidManifest.xml中改为:         

        <activity android:name=".Atv" android:exported="false">//需要捕获异常

     然后在onClick()方法中使用try-catch捕获异常:

                   try{

              startActivity(newintent(Atv.ACTION));

        }catch(Exception e){

                Toast.makeText(….);

        }

   

 

三、intent过滤相关选项

          如果多个activity拥有同样的intent action,在启动时使用同一个action时,情况如何呢

         1、再新建一个activity,在AndroidManifest.xml中配置,且action与之前使用的为同一个

         2、启动这三个activity

                  此时在主activity中,点击按钮后会出现 选择activity的对话框

 

         也可通过在AndroidManifest.xml中配置:在<intent-filter>中加

               <dataandroid:schema="app"/>

 

四、通过浏览器链接启动本地Activity

     1、新建一个本地的activity

     2、在AndroidManifest.xml中配置:

      

<activity

android:name=".LocalAtv">

<intent-filter>

<action android:name="android.intent.action.VIEW"/>   约定成俗的格式:包名.intent.action.activity名称

<category android:name="android.intent.category.DEFAULT"/>  DEFAULT意味着该intent的行为方式为一个activity

<category android:name="android.intent.category.BROWSABLE"/>

<data android:schema="app"/>

</intent-filter>

</activity>

  3、编写浏览器页面(WebStorm)

          <ahref="app://hello">Launch my app</a>

    4、在android浏览器中输入URL,点击链接即可启动本地的activity

  5、在LocalAtv中通过intent获取到与其相关的对象:

           Uri uri = getIntent.getData();//然后通过uriget方法获取信息,本例中uri的内容为"app://hello"

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android基础知识_Intent概念及实现

一、Intent概述     Android中提供了Intent机制来协助各应用间的交互与通信。Intent负责对应用中一次操作的动作、动作涉及到的数据、附加数据等进行描述,Android则根据此In...
  • u013485543
  • u013485543
  • 2015-06-25 20:32
  • 622

Android使用intent跳转到其它应用activity界面

一、跳转到其它界面。 一、跳转到其它界面。 1、使用包名和类名直接启动,前提是知道这两个。 1.1、启动主activity Intent intent=new Intent(Intent.ACTIO...
  • hn_lgc
  • hn_lgc
  • 2016-07-09 23:54
  • 7317

Android入门——Intent、Bundle的使用和ListView的应用

Android入门——Intent、Bundle的使用和ListView的应用
  • qq_32696375
  • qq_32696375
  • 2016-11-09 14:10
  • 490

Android中Intent概述及使用

Android中的Intent是一个非常重要且常用的类,可以用来在一个组件中启动App中的另一个组件或者是启动另一个App的组件,这里所说的组件指的是Activity、Service以及Broadca...
  • sunqunsunqun
  • sunqunsunqun
  • 2015-09-13 18:45
  • 7180

第77章、再识Intent-创建选择器(从零开始学Android)

有不少初学Android的朋友问我,选择器怎么那么不好理解呢?   实际上一点也不难,在讲Intent-Chooser之前,我们先看一个Windows中的常见例子:我们选择一张图片,单击“右键”,弹...
  • jianghuiquan
  • jianghuiquan
  • 2013-03-09 14:50
  • 4812

Android Intent隐式启动通过scheme打开应用

http://www.jianshu.com/p/f77b5e1d76c9 http://www.jianshu.com/p/f77b5e1d76c9 http://www.jianshu...
  • u011904605
  • u011904605
  • 2016-12-06 02:34
  • 3119

android如何从应用程序进入设置的各个页面

调用Android系统“应用程序信息(Application Info)”界面 大致如下:(以下信息来自这位大婶博客:http://blog.csdn.net/zhengzhiren/article...
  • JACKLIAO1
  • JACKLIAO1
  • 2015-07-30 17:35
  • 3022

Android 中拦截 Activity 的启动(拦截系统的 Intent)

目的最近因为项目需要,我们自己定制的只能硬件里面没有系统的电话、相机、短信、浏览器等组件,如果其他 App 来发 Intent 调用的话,程序就会崩溃。要求我们做一个系统拦截,拦截这些意图。有几种方法...
  • u012301841
  • u012301841
  • 2016-03-18 21:13
  • 2812

android基础总结篇之九:Intent应用详解

今天我们来讲一下Android中Intent的原理和应用。 前面我们总结了几个Android中重要组件,相信大家对于这些组件已经有了清晰的认识,我们就来看一下几个常见的操作: 启动一个Activ...
  • xiaopihaierletian
  • xiaopihaierletian
  • 2016-05-11 10:56
  • 254

Android编程之Intent源码详解

Intent源码详解,直接开始入题:   Intent源码6700多行代码,但真正核心代码 就那么几百行,大部分都用来定义常量字符串了   先来看一下 public class Intent impl...
  • xyz_fly
  • xyz_fly
  • 2014-02-07 21:27
  • 6381
    个人资料
    • 访问:2398次
    • 积分:71
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:2篇
    • 评论:0条
    文章分类
    文章存档