http://linconz.net/archives/229.html

http://linconz.net/archives/314.html

首先建立一个ICallback.aidl文件,作为Activity中的回调方法

view plain copy to clipboard print ?
  1. packagecom.zhang.test.service;
  2. interfaceICallback{
  3. voidshowResult(intresult);
  4. }

然后再建立一个IService.aidl用来在Activity中接收Service回调,以及在Service中onBind时返回的Binder
注意:aidl中import不能写com.xxx.*,要写全类的路径

view plain copy to clipboard print ?
  1. packagecom.zhang.test.service;
  2. importcom.zhang.test.service.ICallback;
  3. interfaceIService{
  4. voidregisterCallback(ICallbackcb);
  5. voidunregisterCallback(ICallbackcb);
  6. }

接下来是service:
MainService.java

view plain copy to clipboard print ?
  1. packagecom.zhang.test.service;
  2. importandroid.app.Service;
  3. importandroid.content.Intent;
  4. importandroid.os.Handler;
  5. importandroid.os.IBinder;
  6. importandroid.os.Message;
  7. importandroid.os.RemoteCallbackList;
  8. importandroid.os.RemoteException;
  9. importandroid.util.Log;
  10. publicclassMainServiceextendsService{
  11. privatestaticfinalStringTAG="MainService";
  12. privateRemoteCallbackList<icallback>mCallbacks=newRemoteCallbackList<icallback>();
  13. privateIService.StubmBinder=newIService.Stub(){
  14. @Override
  15. publicvoidunregisterCallback(ICallbackcb){
  16. if(cb!=null){
  17. mCallbacks.unregister(cb);
  18. }
  19. }
  20. @Override
  21. publicvoidregisterCallback(ICallbackcb){
  22. if(cb!=null){
  23. mCallbacks.register(cb);
  24. }
  25. }
  26. };
  27. @Override
  28. publicIBinderonBind(Intentintent){
  29. Log.d(TAG,"onBind");
  30. returnmBinder;
  31. }
  32. @Override
  33. publicvoidonCreate(){
  34. Log.d(TAG,"onCreate");
  35. //这里不知道为什么,直接使用callback方法回调showResult
  36. //mCallbacks.beginBroadcast()是0,需要用handler延迟1000毫秒
  37. //也许是在activity中binService太耗时的原因?
  38. mHandler.sendEmptyMessageDelayed(0,1000);
  39. super.onCreate();
  40. }
  41. @Override
  42. publicvoidonDestroy(){
  43. mHandler.removeMessages(0);
  44. mCallbacks.kill();
  45. super.onDestroy();
  46. }
  47. privatevoidcallBack(){
  48. int
分享到: hg clone 命令的windows解决方法Tortoise ... | [转]Android 多个APK共享数据(Shared Us ...
  • 2011-04-29 14:42
  • 浏览 743
  • 评论(0)
  • 分类:移动开发
  • 相关推荐
评论
发表评论

您还没有登录,请您登录后再发表评论

更多相关文章

  1. Android之自定义ViewGroup
  2. [Android]单元测试实例
  3. android 解决viewpager+多个fragment+recyclerview,viewpager展示
  4. android GMS认证之CTS测试命令详细
  5. Android删除短信的方法
  6. Android(安卓)ListView实现方法一(ListActivity)
  7. Android(安卓)一键退出APP 实现
  8. Android(安卓)自定义Dialog,以及失去焦点之后,Dialog消失的解决
  9. android 6.0 不弹允许usb调试 授权对话框

随机推荐

  1. 破解Android:谈谈Root与刷机
  2. Android(安卓)开发实录 (一) Ubuntu + An
  3. Android(安卓)浮动搜索框的使用
  4. 一些关于 Activity 的技巧
  5. Android(安卓)应用程序快速启动的秘诀
  6. Unity3D研究院之与Android相互传递消息(十
  7. Android(安卓)ROM研究---制作Nexus S上的
  8. 面向 x86 的 Android* 入门指南
  9. android播放swf文件
  10. 安卓(android)开发应该怎么学?需要哪些基础