zoukankan      html  css  js  c++  java
  • Android之Intent

    使用IntentIntentFilter进行通信,Intent分为显示意图和隐式意图,显示意图不用配置。

    一般在同一个应用程序优先使用显示意图,因为效率较高。
    Intent是Android用于封装的意图,不管想启动一个新的Activity还是Service或者是BroadcastReceiver,都需要
    Intent来作为桥梁。

    Intent包含了七大属性
    Component,Category,Action,Data,Type,Extra和Flag,其中Component用于明确指定需要启动的目标组件。
    Extra用于携带需要交换的数据。

    以下是详细的介绍:
    //显示Intent 和隐式Intent。
    启动新的Activity。
    //注意:新的activity 一定要在Manifest文件里进行配置
    Intent intent = new(MainActivity.this,SecondActivity.class);//.class后缀不能忘记
    startActivity(intent);
    一个显示Intent对象最多只能包含一个Action属性,却可以包含多个Category属性。
    setAction(String str); addCategory(String str);

    显示意图必须指定开启的组件的具体信息(包名 组件名 组件的Class)。
    可以用intent来调用系统的其他应用。如网络设置本地相册,注意添加权限。
    Intent intent = new intent("packagename","classname ");
    startActivity(intent);//注意配置Activity。
    //小华华的视频讲的很不错。
    显示意图不用配置。

    隐式意图:显示意图的耦合性比较差,
    描述动作的行为。
    Intent intent = new Intent();
    intent.setAction();//系统默认了很多动作类型。
    intent.setData(Uri data);
    startActivity(intent);
    //需要

    //一个activity 可以配置多个intent-filter,只要满足其中的一个意图就可以调用。
    一个隐式intent还可以设置多个动作 ,只要满足其中的一个那么就可以调用。

    同一个应用程序里面,自己激活自己的东西,推荐使用显示意图,效率高。
    不同的程序里,激活别人的应用,或者是让自己的某一个界面希望被别人激活
    推荐使用隐士意图。
    使用隐士意图时
    1.查询系统里面所有的activity看看是不是有满足条件的activity。
    2.如果只有一个则直接使用,但是如果有多个符合的activity那么列表显示
    3.如果没有那么抛出异常。activity not found exception.

    从一个activity往另外一个activity 里传人数据:
    Intent intent = new Intent(this, secondActivity.class);
    intent.putExtra("name",name);

    //八大基本的数据都能传递过去包括String类型,key-values的形成存储数据

    startActivity(intent);
    -------------------------------------------------------------------------- 
    在secondActivity的onCreate()里:
    Intent intent = getIntent();
    String name = intent.getStringExtra("name");

  • 相关阅读:
    奇虎董事长周鸿祎:谁说没钱不能创业
    分析.NET基础库源码,学习Stream类及相关类
    Why need two IF in singleton pattern in the multiple threads scenario
    It's bad design that leveraging singleton design pattern in db connection
    Asp.net mvc 3 JSONResult return array
    System.Web.HttpContext.Current vs. ControllerContext.HttpContext (almost the same)
    Nhibernate HQL example paging and avoid sql injection
    Asp.net mvc 3 JSON complext object mapping
    Nhibernate configuration in app.config with log4net enabled 0 of 4
    Setup and run a simple nhibernate example
  • 原文地址:https://www.cnblogs.com/taotaomajia/p/4475634.html
Copyright © 2011-2022 走看看