Service

是Android中实现程序后台运行的解决方案。用于执行耗时操作。Service运行于宿主进程的主线程中,既不创建自己的线程也不运行在单独的进程中。若服务要执行一些很耗CPU的工作或阻塞的操作,应在服务中创建一个新的线程来执行这些工作。利用单独的线程,将减少Activity发生应用程序停止响应(ANR)错误的风险。
启动模式

  • 正常模式
    1.startService:启动服务。即使它的应用组件被销毁,该服务还在运行。若资源不足时,则服务可能会被杀死;当资源足够时,服务又会被重新启动。
    2.bindService:绑定服务。只有当应用组件绑定后才能运行 ,多个组件可以绑定一个Service,被绑定的服务生命周期与被调者关联起来。当调用unbind()时,该Service就会被销毁。
    区别:
    通过startService()方法启动服务,不会调用服务内部的方法。
    通过bindService()方法启动服务,可以通过调用者调用服务内部的方法。
  • 混合模式:
    既保证了服务可以长期在后台运行,又可以让调用者远程调用服务中提供的方法。
    1.start()→bind()→stop()→unbind()→ondestroy()。(不推荐)
    开启→绑定→结束(服务不停)→解除绑定(服务停止)
    2.start()→bind()→unbind()→stop()。
    开启→绑定→解除绑定(服务继续运行)→结束(不用时,再停止服务)

生命周期
startService():onCreate()→onStrartCommand()→onDestroy()。
bindService():onCreate()→onBind()→onUnBind()→onDestroy()。

更多相关文章

  1. Android中Gridview和ViewPager显示图片的优化处理(2)
  2. android socket通信demo (本篇服务于android消息推送)
  3. Android(安卓)学习笔记 - 《第一行代码 Android(安卓)第二版》
  4. Android(安卓)sdk开发(二) Log日志类的设计
  5. android调用本地服务示例
  6. Activity有几点你可能不知道的
  7. Android中有关Handler的使用(一)
  8. Android怎样停止AsyncTask和Thread
  9. [Android] Handler详解

随机推荐

  1. android.os.NetworkOnMainThreadExceptio
  2. Android(安卓)Camera2 Opengles2.0 图像
  3. PopupWindow与PopupMenu的用法
  4. Android开源项目发现--- 工具类依赖注入D
  5. android 8.0 wifi-host ap 开关操作
  6. MUI调用自定义插件(Android)
  7. Android kotlin高级特性
  8. android 模拟按键单值/多值输入
  9. android edittxet 设置可点击不可编辑状
  10. Android长按imageview把图片保存到本地