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;

     

  • 相关阅读:
    线性代数:矩阵行列式
    线性代数:逆变换
    线性代数:线性变换
    线性代数:零空间
    线性代数:向量乘法
    线性代数基础:向量组合
    线性代基础理论:向量
    线性代基础理论:矩阵
    SpringBoot 消费NSQ消息
    将Oracle中的数据放入elasticsearch
  • 原文地址:https://www.cnblogs.com/bbqopdd/p/10884720.html
Copyright © 2011-2022 走看看