,,Android 启动 Service(startservice和bindservice) 两种方式的区别

,,Android 启动 Service(startservice和bindservice) 两种方式的区别

Andrid服务有两个启动方法:第一个startservice和第二个bindservice。你知道这两种启动方式的区别吗?让我们跟着边肖学。

Android服务生命周期可以促进移动设备的创新,让用户体验到最好的移动服务。只有当广播接收器执行此方法时,它才是活动的,当onReceive()返回时,它是非活动的。

如果没有程序停止它或它自己停止,服务将一直运行。在此模式下,服务通过调用Context.startService()启动,并在context.stopservice()处停止。服务可以通过调用Android服务生命周期()或Service . stopselfrequency()来自行停止。无论调用多少次startService(),都只需要调用一次stopService()就可以停止服务。

可以通过接口被外部程序调用。外部程序建立到服务的连接,并通过该连接操作服务。连接调用从Context.bindService()开始,到Context.unbindService()结束。多个客户端可以绑定到同一个服务,如果服务没有启动,bindService()可以选择启动它。

服务不能自己运行。您需要通过调用Context.startService()或Context.bindService()方法来启动服务。这两种方法都可以启动服务,但它们用于不同的情况。使用startService()方法启用该服务。调用者和服务之间没有连接。即使调用者退出,服务仍然运行。使用bindService()方法启用服务,调用者和服务绑定在一起,调用者一旦退出,服务就会终止,其特点是“不需要同时活,但必须同时死”。

如果您计划用Context.startService()方法启动服务,系统将首先调用服务的onCreate()方法,然后在服务未创建时调用onStart()方法。如果在调用startService()方法之前已经创建了服务,多次调用startService()方法不会导致多次创建服务,但会导致多次调用onStart()方法。startService()方法启动的服务只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。

如果打算使用Context.bindService()方法启动服务,那么在没有创建服务的时候,系统会先调用服务的onCreate()方法,然后调用onBind()方法。此时调用者和服务绑定在一起,调用者退出时,系统会先调用服务的onUnbind()方法,再调用onDestroy()方法。如果在调用bindService()方法之前已经绑定了服务,多次调用bindService()方法不会导致多次创建服务和绑定(也就是说,不会多次调用onCreate()和onBind()方法)。如果调用者想要解除绑定的服务,他可以调用unbindService()方法,这也将导致系统调用服务的onbinding ()-ondestroy()方法。

总结:两种启动方法和服务的差异

服务的生命周期方法onCreate,onStart,onDestroy

启动服务有两种方式,它们对服务生命周期的影响是不同的。

1 通过startService

服务将经历onCreate-onStart。

当你停下来的时候,你就直接毁了它。

如果调用者没有调用stopService就直接退出,服务会一直在后台运行。下次打电话的人起来,你可以停止服务。

2 通过bindService

当服务的调用者被绑定到服务时,服务将只运行onCreate。

当呼叫者退出时,服务将调用onUnbind-onDestroyed。所谓“捆绑在一起”,就是一起生存。这种方式也可以让

例如,调用者调用服务上的其他方法。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windowsandroid手机版下载,windowsandroid安装apk
  • windowsandroid手机版下载,windowsandroid安装apk,WindowsAndroid 安装教程详解
  • android调用webview方法,androidwebview是什么,Android 中 WebView 的基本用法详解
  • android传感器高级编程,Android传感器,Android编程之光线传感器用法详解
  • android.app.Dialog,android自定义dialog对话框,Android开发笔记之-Dialog的使用详解
  • android 图片视频轮播框架,androidlayout轮播图,Android实现炫酷轮播图效果
  • android里的viewpager,安卓自定义view流程,Android自定义引导玩转ViewPager的方法详解
  • android里的viewpager,android viewpager详解
  • android里的viewpager,android viewpager详解,Android自定义超级炫酷的ViewPage指示器
  • android调用webview方法,androidwebview是什么
  • android设置控件宽度,android获取屏幕宽度和高度
  • android设置控件宽度,android获取屏幕宽度和高度,Android中获取控件宽高的4种方法集合
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程
  • android蓝牙开发的基本流程,安卓蓝牙app开发教程,android蓝牙简单开发示例教程
  • android菜单栏,android菜单控件
  • 留言与评论(共有 条评论)
       
    验证码: