zoukankan      html  css  js  c++  java
  • 在其他地方通过ServiceConnection 获取Service

    当我们建立一个服务时,想在其他地方获取到这个服务的实例时,就需要用到此方法,其中一种写法如下:

    在服务类里建立一个内部类:

    1 public class SocketBinder extends Binder {
    2         /*返回SocketService 在需要的地方可以通过ServiceConnection获取到SocketService  */
    3         public SocketService getService() {
    4             return SocketService.this;
    5         }
    6     }

    然后在需要获取的地方通过ServiceConnection获取:

     1 ServiceConnection serviceConnection = new ServiceConnection() {
     2         @Override
     3         public void onServiceConnected(ComponentName name, IBinder service) {
     4             SocketService.SocketBinder binder = (SocketService.SocketBinder) (service);
     5             mSocketService = binder.getService();
     6         }
     7 
     8         @Override
     9         public void onServiceDisconnected(ComponentName name) {
    10             mSocketService = null;
    11         }
    12     };

    最后,直接通过bindService实例对象:

    1 if (mSocketIntent == null) {//4.30
    2             mSocketIntent = new Intent(this, SocketService.class);
    3             bindService(mSocketIntent, serviceConnection, BIND_AUTO_CREATE);//获取到Socket服务实例
    4         }
    5 
    6 对象:

        private Intent mSocketIntent; 7 private SocketService mSocketService;

     

  • 相关阅读:
    如何进行简单画图
    缓冲技术
    信号量机制
    进程通信
    中断技术
    操作系统原理-图书主题
    供多处理器系统中的高速缓存同步中使用的转发状态
    js几种escape()解码与unescape()编码
    MySQL 元数据
    MySQL 复制表
  • 原文地址:https://www.cnblogs.com/bbqopdd/p/10884720.html
Copyright © 2011-2022 走看看