导航:首页 > 使用方法 > serviceandroid使用方法

serviceandroid使用方法

发布时间:2022-05-07 15:36:58

❶ Android中怎么启动关闭Service及功能解释

调用startService就是启动service,调用stopService就是关闭service。

android中Service是运行在后台的东西,级别与activity差不多。既然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西。可以启动一个服务Service来播放音乐,或者记录地理信息位置的改变,或者启动一个服务来运行并一直监听某种动作。Service和其他组件一样,都是运行在主线程中,因此不能用它来做耗时的请求或者动作。

服务一般分为两种:
1:本地服务, Local Service 用于应用程序内部。在Service可以调用Context.startService()启动,调用Context.stopService()结束。在内部可以调用Service.stopSelf() 或 Service.stopSelfResult()来自己停止。无论调用了多少次startService(),都只需调用一次stopService()来停止。
2:远程服务, Remote Service 用于android系统内部的应用程序之间。可以定义接口并把接口暴露出来,以便其他应用进行操作。客户端建立到服务对象的连接,并通过那个连接来调用服务。调用Context.bindService()方法建立连接,并启动,以调用 Context.unbindService()关闭连接。多个客户端可以绑定至同一个服务。如果服务此时还没有加载,bindService()会先加载它。

如何让android的service一直在后台运行

1.把service和activity分开,让service开机启动。设置一个broadcastreceiver接受开机信号,使用RECEIVE_BOOT_COMPLETED的permission,然后启动service。activity启动后绑定到service上,通过ipc机制通信,acitivity结束后松绑。注意安装后要手动启动service,不会自动启动,之后重启手机后才会随开机启动。2.在内存低的时候系统会自动清理进程,这时候后台service可能会被杀掉。可以在onStartCommand中返回START_STICKY,这样系统有足够多资源的时候,就会重新开启service。3.以上不需要NDK,直接用SDK开发就可以了。Android一直运行的后台服务是不存在的,而且也不是最佳实践,因为一直运行的后台服务会耗费大量系统资源,影响其他程序的响应从而影响到用户体验。可以考虑使用如下几种方案来达到一直运行的效果。1.调用startForeground方法,android:.使用AlarmManager发送定时任务:DiamondsAreForever.ServicesAreNot.我现在也遇到这个问题,我想楼主之所以出现这个问题的原因是,你在Activitiy中创建的Service运行在当前进程中,当你把这个Activitiy的进程杀掉之后,自然这个服务也就停止了。所以我的建议是在startService的时候,让这个Service运行在与该Activity不同的进程中(可以startService或者开机时创建一个新的进程)。实际上就是Linux里面的进程操作。可以使用NDK开发,用C或者C++新建一个进程来运行自己的服务,并提高进程优先级,避免被清理掉(我猜测 和 的推送服务,或许是这么实现的)。有一种做法是开两个进程来相互监督,一旦其中一个进程被停止,另一个检测到后,立即或稍后重启另一个进程。这里可以效仿这种做法。可以开两个进程,一个用来做前台,另一个负责运行服务,后者没有activity,由前者初始化并启动,这样,当前台进程被关闭时,服务并不被关闭

❸ android使用Service,什么时候使用bindService()好一点和什么时候使用startService()好一点

当需求是 比如就拿下载来说吧,下载必须是下载完,中间不能漏掉任何步骤,这时候比如使用bindService(),这时候你点一下返回键或者Home键(如果你的代码对返回键没有做特殊代码处理,比如按两次返回键退出),那么你的Service就挂掉了,虽然现在有的第三方库支持断点续传的功能,不过前提是用户再一次启动服务(就是点“继续下载”的按钮),有的用户不清楚手机,按了返回键(你的代码没对返回键做特殊处理)或者按了Home键,以为后台自动下载,所以像这类的,使用startService

❹ Android中的Service到底起什么作用

Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的。如:onCreate,onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的。如果是Remote Service,那么对应的 Service 则是运行在独立进程的 main 线程上。因此请不要把 Service 理解成线程,它跟线程半毛钱的关系都没有!

既然这样,那么我们为什么要用 Service 呢?其实这跟 android 的系统机制有关,我们先拿 Thread 来说。Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后,如果你没有主动停止 Thread 或者 Thread 里的 run 方法没有执行完毕的话,Thread 也会一直执行。因此这里会出现一个问题:当 Activity 被 finish 之后,你不再持有该 Thread 的引用。另一方面,你没有办法在不同的 Activity 中对同一 Thread 进行控制。

举个例子:如果你的 Thread 需要不停地隔一段时间就要连接服务器做某种同步的话,该 Thread 需要在 Activity 没有start的时候也在运行。这个时候当你 start 一个 Activity 就没有办法在该 Activity 里面控制之前创建的 Thread。因此你便需要创建并启动一个 Service ,在 Service 里面创建、运行并控制该 Thread,这样便解决了该问题(因为任何 Activity 都可以控制同一 Service,而系统也只会创建一个对应 Service 的实例)。

因此你可以把 Service 想象成一种消息服务,而你可以在任何有 Context 的地方调用 Context.startService、Context.stopService、Context.bindService,Context.unbindService,来控制它,你也可以在 Service 里注册 BroadcastReceiver,在其他地方通过发送 broadcast 来控制它,当然这些都是 Thread 做不到的。

❺ Android中如何启用Service,如何停用Service

• Context.startService()
• Context.bindService()

1. 在同一个应用任何地方调用 startService() 方法就能启动 Service 了,然后系统会回调 Service 类的
onCreate() 以及 onStart() 方法。这样启动的 Service 会一直运行在后台,直到
Context.stopService() 或者 selfStop() 方法被调用。另外如果一个 Service 已经被启动,其他代码再试图调用
startService() 方法,是不会执行 onCreate() 的,但会重新执行一次 onStart() 。

2. 另外一种 bindService() 方法的意思是,把这个 Service 和调用 Service
的客户类绑起来,如果调用这个客户类被销毁,Service 也会被销毁。用这个方法的一个好处是,bindService() 方法执行后
Service 会回调上边提到的 onBind() 方发,你可以从这里返回一个实现了 IBind
接口的类,在客户端操作这个类就能和这个服务通信了,比如得到 Service 运行的状态或其他操作。如果 Service
还没有运行,使用这个方法启动 Service 就会 onCreate() 方法而不会调用 onStart()。

总结:
1.
startService()的目的是回调onStart()方法,onCreate()
方法是在Service不存在的时候调用的,如果Service存在(例如之前调用了bindService,那么Service的onCreate方法
已经调用了)那么startService()将跳过onCreate() 方法。

2.
bindService()目的是回调onBind()方法,它的作用是在Service和调用者之间建立一个桥梁,并不负责更多的工作(例如一个
Service需要连接服务器的操作),一般使用bindService来绑定到一个现有的Service(即通过StartService启动的服
务)。
由于Service 的onStart()方法只有在startService()启动Service的情况下才调用,故使用onStart()的时候要注意这点。

❻ Android Application 里面怎么启动service

1.
Intent
intent
=
new
Intent(A.this,Service.class);
startService(intent);
在同一个应用任何地方调用
startService()
方法就能启动
Service
了,然后系统会回调
Service
类的
onCreate()
以及
onStart()
方法。这样启动的
Service
会一直运行在后台,直到
Context.stopService()
或者
selfStop()
方法被调用。另外如果一个
Service
已经被启动,其他代码再试图调用
startService()
方法,是不会执行
onCreate()
的,但会重新执行一次
onStart()

2.
Intent
intent
=
new
Intent(A.this,Service.class);
ServiceConnection
conn
=
new
ServiceConnection(){//逻辑操作};
bindService(intent,
conn,
Context.BIND_AUTO_CREATE);
bindService()
方法的意思是,把这个
Service
和调用
Service
的客户类绑起来,如果调用这个客户类被销毁,Service
也会被销毁。用这个方法的一个好处是,bindService()
方法执行后
Service
会回调上边提到的
onBind()
方发,你可以从这里返回一个实现了
IBind
接口的类,在客户端操作这个类就能和这个服务通信了,比如得到
Service
运行的状态或其他操作。如果
Service
还没有运行,使用这个方法启动
Service
就会
onCreate()
方法而不会调用
onStart()。
区别概况为:
startService()
的调用者与服务没有联系,即使调用者退出了,服务仍然运行,而bindService()
的调用者与服务绑在一起,调用者一旦退出了,服务也随即终止掉。

❼ Android Service启动方式

1.startService
①.定义一个类继承service
②.在manifest.xml文件中配置该service
③.使用context的startService(intent)启动该service
④.不再使用时,调用stopService(Intent)停止该服务
2.bindService
①.创建bindService服务段,继承自service并在类中,创建一个实现binder接口的实例对象并提供公共方法给客户端调用
②.从onbind()回调方法返回此binder实例
③.在客户端中,从onserviceconnected()回调方法接收binder,并使用提供的方法调用绑定服务

❽ android 什么时候使用service

Android开发中,当需要创建在后台运行的程序的时候(主进程不能进行耗时操作),就要使用到Service。Service 可以分为有无限生命和有限生命两种。

特别需要注意的是Service跟Activities是不同的(简单来说可以理解为后台与前台的区别),例如,如果需要使用Service的话,需要调用startService(),从而利用 startService()去调用Service中的OnCreate()和onStart()方法来启动一个后台的Service。

❾ android 怎么调用service里的方法

直接传activity 引用肯定是不行的, 最简单的是 用静态全局变量 ,不过不推荐。 所以只能复杂一点 ,不能service可以直接调用activity ,只能传消息给activity ,让activity 执行特定的方法。 就是 service start activity 。 而activity 设置为 single instance ,在newIntent 方法 里面 处理 传入消息。 还有一个方法就是activity 里面定义 一个 内部类 broadcast ,然后 service 调用sendbraoadcast , broadcast 再调用 activity 方法。

❿ android service有什么用

Service是Android系统中的四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。如果service是被开启的,那么它的活动生命周期和整个生命周期一同结束。如果service是被绑定的,它们它的活动生命周期是在onUnbind()方法返回后结束。

service积极活动的生命时间(active lifetime)是从onStartCommand()或onBind()被调用开始,它们各自处理由startService()或bindService()方法传过来的Intent对象。

(10)serviceandroid使用方法扩展阅读

service整体的生命时间是从onCreate()被调用开始,到onDestroy()方法返回为止。和activity一样,service在onCreate()中进行它的初始化工作,在onDestroy()中释放残留的资源。

比如,一个音乐播放service可以在onCreate()中创建播放音乐的线程,在onDestory()中停止这个线程。onCreate()和onDestroy()会被所有的service调用,不论service是通过startService()还是bindService()建立。

阅读全文

与serviceandroid使用方法相关的资料

热点内容
母猪常用的妊娠诊断方法 浏览:780
处方药食用方法 浏览:86
西安哪里有消痔的方法 浏览:7
皮带拉水煤解决方法 浏览:570
水龙头只接冷水管的连接方法 浏览:37
微信直接看视频的方法 浏览:680
大麦苗的家庭种植方法 浏览:344
小米电视机咋安装方法 浏览:597
upd计算方法 浏览:2
请客快速做菜方法 浏览:485
脚裂的治疗方法 浏览:285
广州mts检测细胞增殖的方法 浏览:418
不锈钢挡水门安装方法 浏览:281
三极管种类及使用方法 浏览:204
给水系统管道用什么方法连接 浏览:243
抑菌洗手液抑菌检测方法 浏览:865
电脑绣花粘胶带方法 浏览:24
除权派息的计算方法 浏览:956
学校建设的方法和步骤 浏览:199
无人机水下测量的方法 浏览:253