大家好,上一节我讲解了Android Activity的生命周期,这一节我将讲解一下Service,首先我们要知道Service具体是干什么的,什么时候用到?以及它的生命周期等。

Service概念及用途:

Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,那 我们什么时候会用到Service呢?比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当我们退出播放音乐的应用,如果不用Service,我 们就听不到歌了,所以这时候就得用到Service了,又比如当我们一个应用的数据是通过网络获取的,不同时间(一段时间)的数据是不同的这时候我们可以 用Service在后台定时更新,而不用每打开应用的时候在去获取。

Service生命周期 :

Android Service的生命周期并不像Activity那么复杂,它只继承了onCreate(),onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法,具体的可以看下面的实例。

Service与Activity通信:

Service后端的数据最终还是要呈现在前端Activity之上的,因为启动Service时,系统会重新开启一个新的进程,这就涉及到不同进程间通信的问题了(AIDL)这一节我不作过多描述,当我们想获取启动的Service实例时,我们可以用到bindService和onBindService方法,它们分别执行了Service中IBinder()和onUnbind()方法。

为了让大家 更容易理解,我写了一个简单的Demo,大家可以模仿着我,一步一步的来。

第一步:新建一个Android工程,我这里命名为ServiceDemo.

第二步:修改main.xml代码,我这里增加了四个按钮,代码如下:

第三步:新建一个Service,命名为MyService.java代码如下:

第四步:修改ServiceDemo.java,代码如下:

第五步:修改AndroidManifest.xml代码(将我们新建的MyService注册进去如下代码第14行:)

第六步:执行上述工程,效果图如下:

点击startServie按钮时先后执行了Service中onCreate()->onStart()这两个方法,打开Logcat视窗效果如下图:

我们这时可以按HOME键进入Settings(设置)->Applications(应用)->Running Services(正在运行的服务)看一下我们新启动了一个服务,效果如下:

点击stopService按钮时,Service则执行了onDestroy()方法,效果图如下所示:

这时候我们再次点击startService按钮,然后点击bindService按钮(通常bindService都是bind已经启动的Service),我们看一下Service执行了IBinder()方法,以及TextView的值也有所变化了,如下两张图所示:

最后点击unbindService按钮,则Service执行了onUnbind()方法,如下图所示:

Ok,今天就先讲到这里了,谢谢大家关注~

更多相关文章

  1. Android(安卓)事件处理
  2. android的touch事件详解
  3. Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明
  4. Android基于OpenCV通过JNI识别并显示人脸位置
  5. 关于android连续点击出现多个Activity界面的解决方法
  6. Android位图操作
  7. Android(安卓)Hook 机制之简单实战
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android中字符设备驱动和应用实例(一)—
  2. Android(安卓)web界面丝滑进度条
  3. Android(安卓)(Android(安卓)studio3.0.1)
  4. 关于Android的Dialog
  5. 采用MQTT协议实现Android消息推送
  6. Android(安卓)View的绘制机制流程深入详
  7. android 退出应用优雅的方式(新加一种)
  8. input 系统-------android 静音键的流程
  9. ubuntu下的android环境配置
  10. React Native【1.搭建项目HelloWord】