Service启动的两种方式

1.通过startService启动

使用Service的步骤:

  1. 定义一个类继承Service
  2. 在Manifest.xml文件中配置该Service
  3. 使用Context的startService(Intent)方法启动该Service
  4. 不再使用时,调用stopService(Intent)方法停止该服务

生命周期:

onCreate()--->onStartCommand() ---> onDestory()
当Service已经启动时,不再调用onCreate方法,而会调用onStart和onStartCommand方法
生命周期与Activity不同,Activity结束后Service并不跟随结束

2.通过bindService启动

使用Service的步骤:

  1. 定义一个类继承Service
  2. 在Manifest.xml文件中配置该Service
  3. 使用Context的bindService(Intent, ServiceConnection, int)方法启动该Service
  4. 不再使用时,调用unbindService(ServiceConnection)方法停止该服务

生命周期:

onCreate() --->onBind()--->onunbind()--->onDestory()
生命周期与Activity相同,Activity结束后Service跟随结束

Activity与Service的通信方式

  1. 不论是start还是bind,都可以在开始时通过intent携带一定量数据
  2. 通过Broadcast,Activity发送广播,Service接收;或者Service发送广播,Activity接收
  3. 通过bind方式启动时,可以通过实现ServiceConnection来完成Activity和Service的交互

参考资料

Android 服务两种启动方式的区别

Android Activity与Service的通信方式

Android中Service的启动方式及Activity与Service的通信方式相关推荐

  1. Android Studio开发基础之启动Service,并通过从Activity向Service传递数据

    本实例演示启动Service,并通过从Activity向Service传递数据,新建一个Service,并敲如下代码: package com.example.lhb.startservice;imp ...

  2. android 启动服务同时传递数据,Android Studio开发基础之起动Service,并通过从Activity向Service传递数据...

    Android Studio开发基础之启动Service,并通过从Activity向Service传递数据 本实例演示启动Service,并通过从Activity向Service传递数据,新建一个Se ...

  3. Android基础再回首——四大组件之Activity、Service俩兄弟

    Android基础再回首--四大组件之Activity.Service俩兄弟 偶尔的回首过去,总是有不一样的收获.今天就来回顾下Activity和service吧,不用嫌弃太基础了,打好基础是取得成功 ...

  4. Android中 一个应用启动另外一个应用一

    Android中 一个应用启动另外一个应用一般有2种情况,被启动应用的包名已知和未知两种情况:    *情况一 =====>已知包名通常有两种方法:    方法一:    [java]      ...

  5. 1._请写出5种以上的android中界面常用布局方式,跳槽季“充电宝”Android面试题(一)...

    1.请介绍下Android中常用的5种布局 Android中常用的5种布局分别为:FrameLaout(框架布局).LinearLayout(线性布局).AbsoluteLayout(绝对布局).Re ...

  6. android启动其他app的服务器,Android中通过外部程序启动App的三种方法

    这篇文章主要介绍了Android中通过外部程序启动App的三种方法, 本文讲解了直接通过包名. 通过自定义的Action. 通过Scheme三种方法,并分别给出操作代码,需要的朋友可以参考下 ==== ...

  7. Android中如何解决输入法键盘和activity页面遮挡的问题

    Android中如何解决输入法键盘和activity页面遮挡的问题 参考文章: (1)Android中如何解决输入法键盘和activity页面遮挡的问题 (2)https://www.cnblogs. ...

  8. Android中常用的加密方式

    Android中常用的加密方式 HmacSHA1 public static String getSignUtil(String key ,String base) {Log.i(TAG, " ...

  9. 用android中的Preferencescreen 启动一个新的 activity

    android的 setting里的Preferencescreen,它不仅可以作为设置界面显示,而且还能够启动activity,下面主要是对启动activity的介绍 一. Preferencesc ...

最新文章

  1. java case switch,Java中Switch Case的替代方案
  2. 什么叫云服务器_什么叫云计算,云计算是什么,最通俗的解释是这样的
  3. 39策略模式(Strategy Pattern)
  4. redis——实战点赞
  5. java.lang.class_关于Java.lang.Class的一些疑问
  6. 浅入浅出 Android 安全:第五章 Android 应用层安全
  7. 做消息推送 8 年的极光,为何做物联网 JIoT 平台?
  8. java B2B2C Springcloud仿淘宝电子商城系统-spring cloud 框架原理
  9. oracle md,Oracle笔记.md
  10. jQuery中的$(“this“)和$(this)的区别
  11. Java基础篇:if控制语句
  12. 调试Javascript代码(浏览器F12)
  13. librdkafka
  14. 少儿编程培训行业分析
  15. 【转】word 高效经典教程
  16. 常见软件架构风格介绍
  17. 眼镜寿命不仅跟镜架材质有关,还跟习惯有关系!
  18. Ubuntu12.10 使用DNW传数据 进行ARM开发板烧写
  19. 零零信安-DD数据泄露报警日报【第20期】
  20. 持续集成和交付流水线的反模式

热门文章

  1. android 拷贝文件到其他目录下
  2. 持续提高 Android 应用的安全性与性能
  3. Vue—基础概念—路由(vue-router)
  4. 队列与环形队列使用数组模拟
  5. 【硬件】集线器,交换机,路由器
  6. TabLayout和ViewPager
  7. setInterval(callback(),time)
  8. python与java的猜拳游戏
  9. poj 2769 感觉♂良好 (单调栈)
  10. DP Big Event in HDU