zoukankan      html  css  js  c++  java
  • Android Intent 其中一个分析

    Intent该架构由三个区域组成:

    Client。正在发送此Intent的activity。

    Server,那是,activityManagerService.java,它是主要负责这些分布Intent到适当的对象。

    Target,就是那些须要处理这个Intent的activity,我们称为Receiver。

    Intent的三个主要方面:Action、Data、Category在之前的文档中也有介绍,在此就不在叙述了。


    以下回到前面的样例:

    Intent intent = new Intent(AudioManager.ACTION_AUDIO_BECOMING_NOISY);

    mContext.sendBroadcast(intent);

    第一句话是构造一个Intent。注意仅仅传入了一个參数,这个參数就是一个Action,没有指定data以及Category;也就是说假设某个Receiver写成这样(在AndroidManifext.xml里面):

    <receiver android:name="MediaButtonIntentReceiver">           

        <intent-filter>              

       <action android:name="android.media.AUDIO_BECOMING_NOISY" />         

    </intent-filter> </receiver>

    当然,假设不喜欢在.xml里面指定,也能够直接在你的应用里面使用代码注冊,调用registerReceiver将你的对象注冊到系统中去。效果是一样的。


    这样,一旦这个应用监測到这个广播消息之后,他的onReceiver函数就会被调用了。

    第二句话的目的是把这个消息广播出去,这个是异步的,也就是说广播出去就没事了,谁注冊监听谁处理。从此和我没有不论什么关系了。

    mContext.sendBroadcast(intent);这句之中的mContex即Application Context,这是一个典型的binder调用,调用之后就转到ActivityManagerNative.java在过程中。

    从那里进入了世界(转到服务器去)。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    Spring MVC 教程(比较全的一篇文章了)
    关于F12的有效利用
    论运营工作与小区收垃圾的相似之处
    吴淞炮台湾湿地森林公园半日游
    真正的运营
    今天是入职通联3周年
    甲午年过临海
    购买vps创建账号后无法登录ftp
    prim+BFS
    最小生成树
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4664747.html
Copyright © 2011-2022 走看看