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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()的时候要注意这点。
参考技术A 要确保老师有这方面的开发经验,不是自学的老师给学生上课的,确保有线上的真实应用,这个很重要,华夏博大的3G学院反映挺好的可以就了业之后再付钱的! 参考技术B 可以通过在activity中 设置事件 。当事件出发时 利用intent
Intent intent=new Intent(MainActivity.this, ServiceDemo.class);
switch (v.getId())
case R.id.startBtn:
startService(intent); 启动
break;
case R.id.stopBtn:
stopService(intent); 停用
break;
default:
break;
参考技术C 启用service有两种方式:
Start方式,bound方式
停用service也有两种方式:
Start方式:继承service类,继承intentservice
bind方式:继承binder类,message AIDL
参考技术D Intent i = new Intent(getApplicationContext(),Server.class);
startServer(i);

Intent i = new Intent(getApplicationContext(),Server.class);

stopServer(i);

Server 为服务类。。。

以上是关于Android中如何启用Service,如何停用Service的主要内容,如果未能解决你的问题,请参考以下文章

如何从 android SERVICE 禁用/启用屏幕旋转?

linux ftp启用和停用及vsftpd安装 ssh 启用和停用命令及ssh的安装

FLTK:如何在停用的 Fl_Text_Editor 中启用滚动条

红米+小米手机热点超流量自动关停-“流量消耗达到5GB,数据已停用”-如何取消限量,取消自动停用的办法

批处理如何禁用本地连接同时启用无线连接

如何在 Apache 中停用通知?