zoukankan      html  css  js  c++  java
  • 安卓软件学习进度_19

    Android 意图(Intent)和过滤器(Filter)

    Android意图是一个要执行的操作的抽象描述。它可以通过 startActivity 来启动一个活动,broadcastIntent 来发送广播到任何对它感兴趣的广播接受器组件,startService(Intent) 或者bindService(Intent, ServiceConnection, int) 来与后台服务通讯。

    意图本身(一个 Intent 对象)是一个被动的数据结构,保存着要执行操作的抽象描述。

    例如,你有一个活动,需要打开邮件客户端并通过 Android 设备来发送邮件。为了这个目的,你的活动需要发送一个带有合适选择器的 ACTION_SEND 到 Android 意图处理者。指定的选择器给定合适的界面来让用户决定如何发送他的邮件数据。

    Intent email = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:"));
    email.putExtra(Intent.EXTRA_EMAIL, recipients);
    email.putExtra(Intent.EXTRA_SUBJECT, subject.getText().toString());
    email.putExtra(Intent.EXTRA_TEXT, body.getText().toString());
    startActivity(Intent.createChooser(email, "Choose an email client from..."));

    上面的语法调用 startActivity 方法来开启邮件活动,代码运行结果看起来像这样:

    image

    例如,你有一个活动,需要在 Android 设备上通过浏览器打开一个URL。为了这个目的,你的活动发送 ACTION_WEB_SEARCH 意图到 Android 意图处理器来在浏览器中打开给定的 URL 。意图处理器通过解析一系列活动,并选择最适合你的意图的一个活动,在这个例子中,是 Web 浏览器活动。意图处理器传递你的网页地址到 Web 浏览器,并打开 Web 浏览器活动。

    String q = "https://www.runoob.com";
    Intent intent = new Intent(Intent.ACTION_WEB_SEARCH );
    intent.putExtra(SearchManager.QUERY, q);
    startActivity(intent);

    上面的例子将在Android搜索引擎上查找"www.runoob.com",并在一个活动上给出关键词的结果。

    对于每一个组件-活动,服务,广播接收器都有独立的机制来传递意图。

    序号方法和描述
    1 Context.startActivity():意图传递给该方法,用于启动一个新的活动或者让已存在的活动做一些新的事情。
    2 Context.startService():意图传递给该方法,将初始化一个服务,或者新的信息到一个持续存在的服务。
    3 Context.sendBroadcast():意图传递给该方法,信息将传递到所有对此感兴趣的广播接收器。
  • 相关阅读:
    思考的乐趣
    编程的知识体系
    Android用Intent来启动Service报“java.lang.IllegalArgumentException: Service Intent must be explicit”错误的解决方法
    手拼SQL小技巧,WHERE 1=1
    n+1 < n , are you sure?
    java swing 去掉按钮文字周围的焦点框
    MyBatis使用动态SQL标签的小陷阱
    String、StringBuffer、StringBuilder的一些小经验……
    SQL Server 2012安装后找不到服务器名称的解决办法!!!
    CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)
  • 原文地址:https://www.cnblogs.com/blog-wangke/p/14454878.html
Copyright © 2011-2022 走看看