`
地球小野花
  • 浏览: 164565 次
  • 性别: Icon_minigender_1
  • 来自: 马赛大回旋
社区版块
存档分类
最新评论

Intent这个东西

 
阅读更多

Intent这个东西

 

 

Intent学名:意图,主要用于android应用的各个组件之间的通讯。它包含发生请求的组件中的一组信息送给被请求的对象。你可以想象它是快递员,它携带了各中“物件“给客户。

要寄快递,我们得先打电话。拿起你的Android手机,按下拨号键盘的时候你的android手机做了些什么?“意图“有用吗?

 

按下按键这个动作后

    public void dialButtonPressed() {
        if (isDigitsEmpty()) { // No number entered.
            handleDialButtonClickWithEmptyDigits();
        } else {
            final String number = mDigits.getText().toString();

            // "persist.radio.otaspdial" is a temporary hack needed for one carrier's automated
            // test equipment.
            // TODO: clean it up.
            if (number != null
                    && !TextUtils.isEmpty(mProhibitedPhoneNumberRegexp)
                    && number.matches(mProhibitedPhoneNumberRegexp)
                    && (SystemProperties.getInt("persist.radio.otaspdial", 0) != 1)) {
                Log.i(TAG, "The phone number is prohibited explicitly by a rule.");
                if (getActivity() != null) {
                    DialogFragment dialogFragment = ErrorDialogFragment.newInstance(
                            R.string.dialog_phone_call_prohibited_message);
                    dialogFragment.show(getFragmentManager(), "phone_prohibited_dialog");
                }

                // Clear the digits just in case.
                mDigits.getText().clear();
            } else {
		// 省略前面100字,看这里已经叫到“快递员“Intent了,快递员拿着电话号码“number“ 去送给DialtactsActivity.EXTRA_CALL_ORIGIN这个家伙
                final Intent intent = ContactsUtils.getCallIntent(number, /*s1*/
                        (getActivity() instanceof DialtactsActivity ?
                                ((DialtactsActivity)getActivity()).getCallOrigin() : null));
                startActivity(intent);
                mClearDigitsOnStop = true;
                getActivity().finish();
            }
        }
    }
	

    public static Intent getCallIntent(String number, String callOrigin) {/*s2*/
        return getCallIntent(getCallUri(number), callOrigin);
    }


    public static Intent getCallIntent(Uri uri, String callOrigin) {/*s3*/
        final Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED, uri);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (callOrigin != null) {
            intent.putExtra(DialtactsActivity.EXTRA_CALL_ORIGIN, callOrigin);
        }
        return intent;
    }

 

完成了一次送递!

哦!Intent原来就是这样用。温故而之新,这也是启动Activity的例子。其实Intent不但可以启动Activity,他还可以启动Service 、Broadcast 这些组建。

小结一下:

intnet 勾搭了 activity  方式:startActivity() ,startActivityForResult()

intnet 勾搭了 service   方式:startService() ,bindService()

intnet 勾搭了 broadcast 方式: sendBroadcast(), sendOrderedBroadcast(), or sendStickyBroadcast()

分享到:
评论

相关推荐

    Android-Intent-数据存取-ContentProvider.doc

    * Category(类别):这个选项指定了将要执行的这个 action 的其他一些额外的信息,例如 LAUNCHER_CATEGORY 表示 Intent 的接受者应该在 Launcher 中作为顶级应用出现。 * Type(数据类型):显式指定 Intent 的数据...

    android的小东西 intent

    这段代码创建了一个Intent,指定了目标Activity(DetailActivity),并传递了一个键值对作为额外数据。`startActivity()`会将当前Activity的上下文环境传入,并启动新的Activity。 Intent也可以用来启动Service,这...

    intent使用源码

    源码中,Intent的解析过程主要在`PackageManagerService`类中完成,这个类是系统服务,负责管理所有应用的包信息。`resolveActivity()`和`resolveService()`方法分别用于查找能处理Intent的Activity和Service。 ...

    Android Intent的几种用法详细解析

    Intent应该算是Android中特有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料。都指定好后,只要调用startActivity(),Android系统会自动寻找最符合你...

    Android无需root实现apk的静默安装

    Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安装apk: Intent intent = new ...

    activity 一些小东西哦

    Intent是Android中的另一个核心概念,用于启动或通信`Activity`。Intent有两种类型:显式Intent和隐式Intent。显式Intent通过指定`Activity`的完整类名来启动特定的`Activity`;而隐式Intent则通过设置Action、Data...

    automation:使用Amazon Echo进行家庭自动化的Intent框架

    家庭自动化使用Amazon Echo,Z-wave设备,Raspberry Pis,Kodi以及我周围放置的其他任何东西进行家庭自动化的意图框架。Alexa设置如果您还没有上的帐户,则需要创建一个帐户。 转到 ,然后单击按钮以添加新技能。 ...

    phonegap-receive-intent:测试一些东西

    试图让 phonegap 应用程序接收 android 发送意图脚步创建默认的cordova应用程序使用cordova plugin add添加插件(需要吗?) 将插件添加到 config.xml 将 webintent.js 添加到 www/js/ 将 webintent.js 的引用添加到...

    萌新Android笔记—-IntentFilter匹配篇

    但萌新突出一个莽字,不知道的东西就冲塔搞他。。首先我们萌新知道的启动activity分为两种,显式调用和隐式调用。原则上一个Intent不能即是显式调用又是隐式调用,两者真共存的话以显式调用为主。 显式调用: 需要...

    service把数据传给activity

    Service可以发送一个Broadcast,而Activity注册一个BroadcastReceiver来接收这个广播并获取数据。 ```java // 在Service中 Intent intent = new Intent("com.example.MY_ACTION"); intent.putExtra("key", "data");...

    android小东西

    在Android开发领域,"android小...以上是"android小东西"所涵盖的一些关键知识点,对于一个Android开发者来说,熟练掌握这些基础内容是构建高质量应用的基石。在实践中不断学习和积累,将有助于提升开发技能和效率。

    Android 中有用的东西

    以下是对"Android中有用的东西"这一主题的详细解释。 1. **Activity与Intent**: Activity是Android应用的基本组件,它代表了用户界面的一个屏幕。Intent则是一种消息传递机制,用于启动Activity或Service,进行数据...

    android13配置GlobalSearch全局搜索

    开发者可以通过实现这个接口来添加自己的搜索服务,使得应用内容可以被全局搜索框检索到。Android 13中,这一服务的注册和配置过程有所改进,提高了效率和灵活性。 **一、配置清单文件** 1. **添加权限**:在`...

    复制文字跳转微信

    Intent intent = new Intent(); intent.setData(Uri.parse("weixin://")); try { startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(context, "未找到微信应用", Toast.LENGTH_...

    搜索源代码

    在Android系统中,内容搜索通常基于ContentProvider进行,这是一个接口,用于应用程序间的数据共享。开发者需要创建一个ContentProvider来暴露应用的数据,然后定义一个搜索界面供用户输入查询条件。Android的...

    新版Android开发教程.rar

    Android 进一步推进了 " 随时随地为每个人提供信息 " 这一企 业 目标的实现。 � Open Handset Alliance 汇集了多家业界巨头。运营商如: China Mobile 、 NTT DoCoMo 、 Vodafone 、 T-M obile 等;设备制造商如 ...

    Honeywell PDA Android SDK以及开发方法和样例工程

    1、在工程中导入SDK文件DataCollection.jar。 2、在AndroidManifest.xml中加入下面的代码来获取扫描权限。 ...3、在Activity类(如MainActivity)的声明中加入BarcodeListener和TriggerListener,以便进行扫描键...

    Android代码-Float-Bar

    Float-Bar ...关于辅助功能这个东西网上的说明少的可怜,只能通过看Android官方系统新特性获得,这里说明下如何用系统的辅助功能来实现模拟操作。 1.注册 service必须按照规定注册 这里写上了权限

    给女朋友做的礼物

    "已测试,安装即用"这部分说明了这个应用已经经过了开发者充分的测试,确保在用户下载安装后能够顺利运行,无需额外的配置步骤,体现了程序员的专业性和对用户体验的关注。 从“标签”来看,“女朋友的礼物”这一...

    achartengine

    描述中提到"Achartengine文档,demo,开发包有这个东西,画图什么的方便很多,快很多",这表明AChartEngine不仅提供了完整的文档来指导开发者如何使用,还包含了示例代码(即demo)以便用户了解和学习。通过这个库,...

Global site tag (gtag.js) - Google Analytics