Android中如何启用Service,如何停用Service
发布网友
发布时间:2022-04-26 19:08
我来回答
共5个回答
热心网友
时间:2023-10-22 19:32
• 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()的时候要注意这点。
热心网友
时间:2023-10-22 19:32
要确保老师有这方面的开发经验,不是自学的老师给学生上课的,确保有线上的真实应用,这个很重要,华夏博大的3G学院反映挺好的可以就了业之后再付钱的!
热心网友
时间:2023-10-22 19:33
可以通过在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;
热心网友
时间:2023-10-22 19:34
启用service有两种方式:
Start方式,bound方式
停用service也有两种方式:
Start方式:继承service类,继承intentservice
bind方式:继承binder类,message AIDL
热心网友
时间:2023-10-22 19:34
Intent i = new Intent(getApplicationContext(),Server.class);
startServer(i);
Intent i = new Intent(getApplicationContext(),Server.class);
stopServer(i);
Server 为服务类。。。