首页 > 代码库 > 【Android 初学】12、Service
【Android 初学】12、Service
1、Service的使用
- 定义一个类(例如 EchoService),继承Service (android.app.Service)
- 在AndroidManifest.xml当中注册该service,例如 <service android:name="EchoService"></service>
- 声明一个Intent:Intent serviceIntent = new Intent(Mainactivity,EchoService.class);
- 启动Service:startService(serviceIntent);
- 关闭Service:stopService(serviceIntent);
- 创建Service:onCreate()
- onStartCommand()
- onStart()
- 销毁Service:onDestroy()
- 服务创建之后,被销毁之前,只会调用第一次的onCreate。在服务运行期间,在次运行startService,将不会执行onCreate方法,而是执行onStartCommand()、onStart()这两个方法。
- 绑定:bindService(serviceIntent,this,Context.BIND_AUTO_CREATE);
- BIND_AUTO_CREATE:表示,如果要绑定的服务尚未开启,则自动创建该服务。
- 解除绑定:unbindService(this);
以上的方法中的参数this,指的是一个类实现了ServiceConnection接口,这里是MainAcitivty实现了。
并复写接口的方法public void onServiceConnected(ComponentName name, IBinder service)以及
public void onServiceDisconnected(ComponentName name)方法
3. 陈功绑定后会执行EchoService的onBind方法,使其返回一个Binder子类的实例。
4. 通过在 onServiceConnected中拿到的Binder实例对象,因为Binder是Service的内部类,可以调用到服务内的各种方法,于是Activity里面也可以进行各种操作。
备注:
如果是通过startService启动的服务,他是不会因为Activity的销毁而销毁,但是通过BindService启动的服务会因此销毁。
如果是通过startService启动的服务,只有通过stopService来销毁。不同通过UnbindService(这样会程序崩溃)
通过bindService启动服务,会自动执行startService方法。并且不能通过stopService停止,可以使用UnbindService停止
【Android 初学】12、Service
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。