服务

分为本地服务(程序内部的耗时操作,比如:下载线程),远程服务(内部应用程序相互调用),类似于 Linux 中的守护进程
java.lang.Object;
android.content.Context;
android.content.ContextWrapper;
android.app.Service;

Service 特点

(1)没有用户界面,不直接与用户进行交互;
(2)长期运行,不占用程序控制权;
<1>START_STICKY:该模式下,Service 可被显示启动和停止;
<2>START_NOT_STICKY 或 START_REDELIVER_INTENT:该模式下,只在有命令需要处理时才运行。
(3)比 Activity 优先级高,不轻易被系统终止,即使被系统终止,在系统资源恢复后,也将自动恢复运行状态;
<1>多次重复调用 Context.startService 方法不会引起嵌套,只会成功启动一次;
<2>终止时,调用 Context.stopService 方法会强制终止当前服务,而 stopSelf 方法必须等 Intent 处理结束才终止服务;
(4)用于进程间通信,解决两个不同 Android 应用程序进程之间的调用和通信问题。

创建方法与启动方式

自定义一个类,继承 Service,重写里面的 onCreate、onStart、onDestroy 方法。
启动时,可以选择:启动方式的 startService 启动,也可以选择 Context.bindService 的捆绑式启动,捆绑式启动需要通过 Context.unbindService 终止。

生命周期


更多相关文章

  1. 【Android】ReactNative Android端启动流程
  2. Android(安卓)onTouchEvent, onClick及onLongClick的调用机制
  3. Bluedroid的结构和代码分布
  4. Android(安卓)源码环境下 C++通过aidl与java层系统服务通信
  5. Android(安卓)进程间通信实现原理分析
  6. ubuntu genymotion 启动adb 被占用5037端口
  7. 网络请求工具类WebServiceUtils
  8. Android启动activity的几种方式
  9. android service 学习 一

随机推荐

  1. 在go modules里使用go get进行包管理的介
  2. Go生成go动态库或静态库的方法
  3. golang channel有什么好处
  4. golang channel是什么
  5. go中的数据结构-字典map详解
  6. Golang Cgo是什么
  7. go中的数据结构-接口interface(详解)
  8. go defer(go延迟函数)介绍
  9. golang cap是什么意思
  10. go get命令详解