activity中使用aidl让service与activity通信

activity中使用aidl让service与activity通信

ID:8975956

大小:92.50 KB

页数:9页

时间:2018-04-13

activity中使用aidl让service与activity通信_第1页
activity中使用aidl让service与activity通信_第2页
activity中使用aidl让service与activity通信_第3页
activity中使用aidl让service与activity通信_第4页
activity中使用aidl让service与activity通信_第5页
资源描述:

《activity中使用aidl让service与activity通信》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、简易计算器,默认执行1+1的计算,点击go按钮执行计算,先看效果图,如下首先建立一个ICallback.aidl文件,作为Activity中的回调方法Java代码//MyAIDLfile,namedSomeClass.aidlpackagecom.zhang.test.service;//Seethelistaboveforwhichclassesneed//importstatements(hint--mostofthem)//Declaretheinterface.interfaceICallback{//Meth

2、odscantake0ormoreparameters,and//returnavalueorvoid.//MethodscaneventakeotherAIDL-definedparameters.//BankAccountcreateAccount(inStringname,intstartingDeposit,inIAtmServiceatmService);//Allnon-Javaprimitiveparameters(e.g.,int,bool,etc)require//adirectionaltagind

3、icatingwhichwaythedatawillgo.Available//valuesarein,out,inout.(Primitivesareinbydefault,andcannotbeotherwise).//Limitthedirectiontowhatistrulyneeded,becausemarshallingparameters//isexpensive.voidshowResult(intresult);}复制代码然后再建立一个IService.aidl用来在Activity中接收Servic

4、e回调,以及在Service中onBind时返回的Binder注意:aidl中import不能写com.xxx.*,要写全类的路径Java代码packagecom.zhang.test.service;importcom.zhang.test.service.ICallback;interfaceIService{voidregisterCallback(ICallbackcb);voidunregisterCallback(ICallbackcb);}复制代码接下来是service,CalculateService.

5、javaJava代码packagecom.zhang.test.service;importandroid.app.Service;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.content.IntentFilter;importandroid.os.Handler;importandroid.os.IBinder;importandroi

6、d.os.Message;importandroid.os.RemoteCallbackList;importandroid.os.RemoteException;importandroid.util.Log;publicclassCalculateServiceextendsService{privatestaticfinalStringTAG="MainService";publicstaticfinalStringACTION_CALCUlATE="action_calculate";privateRemoteC

7、allbackListmCallbacks=newRemoteCallbackList();privateIService.StubmBinder=newIService.Stub(){@OverridepublicvoidunregisterCallback(ICallbackcb){if(cb!=null){mCallbacks.unregister(cb);}}@OverridepublicvoidregisterCallback(ICallbackcb){if(cb!=null){mCallbacks.regi

8、ster(cb);}}};//这里的BroadcastReceiver实现了Activity主动与Service通信privateBroadcastReceiverreceiver=newBroadcastReceiver(){@OverridepublicvoidonReceive(Contextcontext,Intentin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。