A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

泄密:黑马Android内部压轴技术面连载现世(四)

涨薪机密——潮流新技术、新框架资源以后不定期更新,
  


16. 什么时候使用Service?
        startForeground(id, notification)
        拥有service的进程具有较高的优先级
        官方文档告诉我们,Android系统会尽量保持拥有service的进程运行,只要在该service已经被启动(start)或者客户端连接(bindService)到它。当内存不足时,需要保持,拥有service的进程具有较高的优先级。
        1. 如果service正在调用onCreate,  onStartCommand或者onDestory方法,那么用于当前service的进程相当于前台进程以避免被killed。
        2. 如果当前service已经被启动(start),拥有它的进程则比那些用户可见的进程优先级低一些,但是比那些不可见的进程更重要,这就意味着service一般不会被killed.
       3. 如果客户端已经连接到service (bindService),那么拥有Service的进程则拥有最高的优先级,可以认为service是可见的。
       4. 如果service可以使用startForeground(int, Notification)方法来将service设置为前台状态,那么系统就认为是对用户可见的,并不会在内存不足时killed。
       如果有其他的应用组件作为Service,Activity等运行在相同的进程中,那么将会增加该进程的重要性。
       1.   Service的特点可以让他在后台一直运行,可以在service里面创建线程去完成耗时的操作.
       2.   Broadcastreceiver捕获到一个事件之后,可以起一个service来完成一个耗时的操作.
       3.   远程的service如果被启动起来,可以被多次bind,但不会重新create.  索爱手机X10i的人脸识别的service可以被图库使用,可以被摄像机,照相机等程序使用.

17. 请描述一下Intent 和 Intent Filter。
       Android 中通过 Intent 对象来表示一条消息,一个 Intent 对象不仅包含有这个消息的目的地,还可以包含消息的内容,这好比一封Email,其中不仅应该包含收件地址,还可以包含具体的内容。对于一个 Intent 对象,消息“目的地”是必须的,而内容则是可选项。
        通过Intent 可以实现各种系统组件的调用与激活.  
        Intent filter: 可以理解为邮箱
        这个分拣系统通过3个参数来识别
        Action: 动作    view
        Data: 数据uri   uri
        Category : 而外的附加信息
        Action 匹配
        Action 是一个用户定义的字符串,用于描述一个 Android 应用程序组件,一个 Intent Filter 可以包含多个 Action。在 AndroidManifest.xml 的 Activity 定义时可以在其 <intent-filter >节点指定一个 Action 列表用于标示 Activity 所能接受的“动作”,例如:
       <intent-filter >
       <actionandroid:name="android.intent.action.MAIN" />
       <action android:name="cn.itcast.action"/>
            ……
       </intent-filter>
       如果我们在启动一个 Activity 时使用这样的 Intent 对象:
        Intent intent =new Intent();
        intent.setAction("cn.itcast.action");
       那么所有的 Action 列表中包含了“cn.itcast”的 Activity 都将会匹配成功。
       Android 预定义了一系列的 Action 分别表示特定的系统动作。这些 Action 通过常量的方式定义在 android.content. Intent中以“ACTION_”开头。我们可以在 Android 提供的文档中找到它们的详细说明。

      URI 数据匹配:
      一个 Intent 可以通过 URI 携带外部数据给目标组件。在 <intent-filter >节点中,通过 <data/>节点匹配外部数据。
     mimeType 属性指定携带外部数据的数据类型,scheme 指定协议,host、port、path 指定数据的位置、端口、和路径。如下:
         <data android:mimeType="mimeType"android:scheme="scheme"
         android:host="host"android:port="port" android:path="path"/>
         电话的uri  tel: 12345
         http://www.baidu.com
         自己定义的uri itcast://cn.itcast/person/10
        如果在 Intent Filter 中指定了这些属性,那么只有所有的属性都匹配成功时 URI 数据匹配才会成功。
        Category 类别匹配
        <intent-filter >节点中可以为组件定义一个 Category 类别列表,当 Intent 中包含这个列表的所有项目时 Category 类别匹配才会成功。
       默认是DEFAULT。
18. Intent传递数据时,可以传递哪些类型数据?
       1.一般的基本数据类型  Intent .putextra()intent.getextra();
       2.数据的uri, intent.setData() intent.getData();

其他精华资源推荐:



评分

参与人数 2黑马币 +3 收起 理由
TommingYu + 2 很给力!
Java好久不见 + 1

查看全部评分

49 个回复

倒序浏览
好东东,收藏!!!
回复 使用道具 举报
好好好好好好
回复 使用道具 举报
目前的我还看不懂
回复 使用道具 举报
先收藏着,肯定会有用的
回复 使用道具 举报
求javaee压轴啊
回复 使用道具 举报
收藏了  后边有用
回复 使用道具 举报
虽然我现在看不懂,但还是支持下
回复 使用道具 举报
get一下~面试无忧~
回复 使用道具 举报

好好好好好好
回复 使用道具 举报
maikouliujian 来自手机 中级黑马 2016-6-17 22:32:19
11#
先收藏着,谢谢!
回复 使用道具 举报
写的挺好的,虽然我看不懂
回复 使用道具 举报
guozhen是精华中的精华,值得吸取。
回复 使用道具 举报
好东东,收藏!!!
回复 使用道具 举报
黑马其实比达内好多了,低调但技术更强,达内只是牌子广告做的好

点评

说的对,看看315旗下聚投诉的达内投诉呗http://ts.21cn.com/home/search?keyword=%E8%BE%BE%E5%86%85  发表于 2016-6-20 09:18
回复 使用道具 举报
好东东,谢谢分享。收藏了
回复 使用道具 举报

JavaEE马上就来啦
回复 使用道具 举报
66666666666  赞一个
回复 使用道具 举报
偶尔等了 来自手机 中级黑马 2016-6-20 23:12:36
19#
简直不能太厉害了!!
回复 使用道具 举报
好,66666666666666666!!!!!!
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马