欢迎来到天天文库
浏览记录
ID:38760393
大小:196.35 KB
页数:7页
时间:2019-06-19
《从头学Android之Service初步二》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、在上一篇,我们学习了通过startService来启动Service,由于篇幅过长,所以这一篇是接上一篇的二、bindService方法启动Service先看bindSerivce(Intentservice,ServiceConnectionconn,intflags)函数参数说明:service:通过该参数也就是Intent我们可以启动指定的Serviceconn:该参数是一个ServiceConnection对象,这个对角用于监听访问者(也可以说成是客户端)与Service之间的连接情况,当访问者与Servic
2、e连接成功时将回调ServiceConnection对象的onServiceConnected(ComponentNamename,Ibinderservice)方法;如果断开将回调onServiceDisConnected(CompontNamename)方法flags:指定绑定时是否自动创建Service。步骤:1、新建一个类继承于Service类,重写onBind()、onCreate()、onUnBind()、onDestory()方法。再在这个类里声明一个Ibinder的子类对象用于提供于客户端,同时可以定
3、义一些成员变量,客户端可以获取到这个成员变量属性2、在AndroidMainfest.xml文件中注册这个Service3、在Activity里通过bindService绑定Service示例代码:[java]viewplaincopyprint?1.packagecom.jiahui.serviceDemo;2.3.importandroid.app.Service;4.importandroid.content.Intent;5.importandroid.os.Binder;6.importandroid.os
4、.IBinder;7.8.publicclassMyServiceextendsService{9.10.privateintcount;11.12.privatebooleanquit;13.14.privateMyBinderbinder=newMyBinder();15.16.//新建一个Binder对象用于提供给客户端1.publicclassMyBinderextendsBinder{2.3.publicintgetCount(){4.returncount;5.}6.}7.8.@Override9.pub
5、licIBinderonBind(Intentintent){10.System.out.println("----onBind-----");11.//返回给客户端一个Binder对象12.returnbinder;13.}14.15.@Override16.publicvoidonCreate(){17.System.out.println("----onCreate-----");18.19.//启动一条线程修改成员变量属性20.newThread(){21.@Override22.publicvoidrun(
6、){23.while(!quit){24.try{25.Thread.sleep(1000);26.}catch(Exceptione){27.28.}29.count++;30.}31.}32.33.}.start();34.35.}1.2.@Override3.publicvoidonDestroy(){4.this.quit=true;5.System.out.println("----onDestory-----");6.super.onDestroy();7.}8.9.@Override10.publicb
7、ooleanonUnbind(Intentintent){11.System.out.println("----onUnbind-----");12.returnsuper.onUnbind(intent);13.}14.15.}packagecom.jiahui.serviceDemo;importandroid.app.Service;importandroid.content.Intent;importandroid.os.Binder;importandroid.os.IBinder;publicclassM
8、yServiceextendsService{privateintcount;privatebooleanquit;privateMyBinderbinder=newMyBinder();//新建一个Binder对象用于提供给客户端publicclassMyBinderextendsBinder{publicintgetCount(){retu
此文档下载收益归作者所有