zoukankan      html  css  js  c++  java
  • bindService初步了解

    bindService的使用:

        当需要调Service里面的方法时,可以用bindService()

    首先定义一个类继承于Service,然后配置Manifest.xml文件

     1 public class MyBindService extends Service {
     2     @Nullable
     3     @Override
     4     public IBinder onBind(Intent intent) {
     5         return new MyBinder();
     6     }
     7     public void myfunction(){
     8         System.out.println("我是服务里的方法");
     9     }
    10     @Override
    11     public void onCreate() {
    12         super.onCreate();
    13     }
    14     public class MyBinder extends Binder{
    15         public void call(){
    16             myfunction();
    17         }
    18     }
    19 }

    通过onBind()方法返回一个对象,给onServiceConnected(ComponentName name, IBinder service)

    方法里面的Service,然后通过强转得到一个MyBinder对象

    myBinder = (MyBindService.MyBinder)service;
    用myBinder对象调用call方法,从而调到服务里面的myfunction()方法

     1 public class MainActivity extends AppCompatActivity {
     2 
     3     private Myconn conn;
     4     private MyBindService.MyBinder myBinder;
     5 
     6     @Override
     7     protected void onCreate(Bundle savedInstanceState) {
     8         super.onCreate(savedInstanceState);
     9         setContentView(R.layout.activity_main);
    10     }
    11 
    12     public void click(View v){
    13         conn = new Myconn();
    14         bindService(new Intent(this,MyBindService.class),conn,BIND_AUTO_CREATE);
    15     }
    16 
    17     public void click1(View v){
    18         myBinder.call();
    19     }
    20     public void click2(View v){
    21         unbindService(conn);
    22     }
    23 
    24     private class Myconn implements ServiceConnection {
    25         @Override
    26         public void onServiceConnected(ComponentName name, IBinder service) {
    27             myBinder = (MyBindService.MyBinder)service;
    28         }
    29         @Override
    30         public void onServiceDisconnected(ComponentName name) {
    31         }
    32     }
    33 }
    onServiceConnected()当绑定成功后调用该方法。
    onServiceDisconnected()取消绑定后调用该方法
    
    
    GitHub:https://github.com/godfunc
    博客园:http://www.cnblogs.com/godfunc
    Copyright ©2019 Godfunc
  • 相关阅读:
    CSV 文件的读写(函数)
    携带cookies请求github个人信息(类封装)
    网络和http协议理论
    思卡乐科技发布SR3系列RFID产品
    爱立信开始大规模mesh网络测试
    NB-IoT物联网,来了
    想象力是我们的局限,蓝牙5应用初探
    RFID电动车管理,智慧城市物联网建设的入口
    蓝牙模块选择经验谈
    RFID电动自行车与共享单车之物联网比较
  • 原文地址:https://www.cnblogs.com/Godfunc/p/6039464.html
Copyright © 2011-2022 走看看