文档章节

android学习之service

b
 bitsman
发布于 2015/04/30 15:29
字数 775
阅读 25
收藏 0

1、Service和IntentService的区别:

    Service在主线程中进行,做耗时操作时,容易引起界面不反应,IntentService则是将多个

2、service内部的几个回调函数执行的顺序:

    当service没有在系统中运行时,我们在其他组件中调用startService(intent),则会立即返回,而后系统将回调onCreate(),然后再调用onStartCommand(intent, flags,startId);

    而如果这个service已经在系统中运行起来了,则调用startService后,系统将直接回调onStartCommand;

3、Intent和PendingIntent的区别

    intent英文意思是意图,pending表示即将发生或来临的事情。 
    PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。 
    Intent 是及时启动,intent 随所在的activity 消失而消失。 
    PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendingintent的实例,当前activity并不能马上启动它所包含的intent,而是在外部执行 pendingintent时,调用intent的。正由于pendingintent中 保存有当前App的Context,使它赋予外部App一种能力,使得外部App可以如同当前App一样的执行pendingintent里的 Intent, 就算在执行时当前App已经不存在了,也能通过存在pendingintent里的Context照样执行Intent。另外还可以处理intent执行后的操作。常和alermanger 和notificationmanager一起使用。 
    Intent一般是用作Activity、Sercvice、BroadcastReceiver之间传递数据,而Pendingintent,一般用在 Notification上,可以理解为延迟执行的intent,PendingIntent是对Intent一个包装。

4、什么时候采用startService和bindService:

    当组件需要和service做交互时,可以考虑采用bindService,而这些交互操作接口在IBinder接口里面实现,而IBinder的实例由onBind返回,而onBind在组件调用bindService后被调用,即调用bindService实际是为了获取到包含交互操作接口IBinder实例的过程;

5、service的生命周期:

    如果使用startService,则service在onStartCommand回调方法里面执行完需要的操作后,service自身可以调用stopSelf方法来结束自己,或者别的组件(按钮)调用stopService结束service;

    如果使用bindService,则service返回IBinder接口,调用者利用该IBinder里面的service提供的方法完成需要的操作后,调用者可以调用unbindService来解绑service,当然多个client可以绑定到同一个service,只有所有的client都解绑后,系统才来结束service;

    另外,以上两种方式并不是一定是互斥的,即可以这样:使用startService启动了一个service,然后用bindService还能绑定到这个service上,这种情况下调用stopSelf或者stopService不会导致service立即结束,必须要没有client绑定了,系统才会结束之。

6、调用者方法和回调方法的对应关系:

    调用者                                                     系统回调方法

    startService                                            onCreate和onStartCommand

    bindService                                            onBind

    unbindService                                         unUnbind

    unbindService之后再bindService            onRebind

    


© 著作权归作者所有

b
粉丝 0
博文 2
码字总数 935
作品 0
成都
私信 提问
学习android之Service

学习android之Service 综述 Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。service可以在很多场合的应用中...

长平狐
2012/10/08
510
0
C# Web Service 学习

Your first C# Web Service http://www.codeproject.com/Articles/863/Your-first-C-Web-Service Everything About REST Web Services - What and How - Part 1 http://www.codeproject.com/......

lgxn
2014/03/23
0
0
Android电池电量监控初步

引言 ,学习了包括Activity、Service、AppWidget、Broadcast、Intent、Notification、XML布局、XML配置等基础知识之后,尝试着做一个小玩意儿——电池监控,期间也是阻挠多多,现在基本完成了...

鉴客
2012/01/29
3.6K
1
为 Android 平台开发一个输入法

学习目标: 实现新的输入法 学习目的: 掌握Android输入法框架 学习收获: Android 1.5 新特色之一就是输入法框架(Input Method Framework,IMF),正是它的出现,才为诞生不带实体键盘的设...

红薯
2009/07/13
20.6K
7
Android Service 服务(一)—— Service

一、 Service简介 Service是android 系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和...

长平狐
2013/01/06
245
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机网络

计算机网络体系结构 OSI 其中表示层和会话层用途如下: 表示层 :数据压缩、加密以及数据描述,这使得应用程序不必关心在各台主机中数据内部格式不同的问题。 会话层 :建立及管理会话。 五层...

一只小青蛙
今天
2
0
0.01-Win10安装linux子系统

一、安装Debian子系统 -1、控制面板设置: -1.1、打开“控制面板” —— “程序” —— “启用或关闭Windows功能” —— 勾选 “适用于Linux的Windows子系统” -2、设置: -2.1、打开“设置”...

静以修身2025
昨天
2
0
init 0-6 (启动级别:init 0,1,2,3,4,5,6)

启动级别: init 0,1,2,3,4,5,6 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下。。 0: 停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system...

圣洁之子
昨天
2
0
Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下: 景物(SCENE)通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为电信号,经过A/D(模数转...

天王盖地虎626
昨天
2
0
聊聊Elasticsearch的ProcessProbe

序 本文主要研究一下Elasticsearch的ProcessProbe ProcessProbe elasticsearch-7.0.1/server/src/main/java/org/elasticsearch/monitor/process/ProcessProbe.java public class ProcessProb......

go4it
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部