• 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
  • 相关阅读:
    Python面试题汇总
    异常处理及反射
    DOM
    socket
    python生成器、迭代器、列表 字典 集合解析、迭代器表达式
    C++繁琐的类型转换,C++小知识之四种类型转换
    C++命名空间
    C++合并exe文件,将两个合并成一个
    BERT 之后,Transformer 还会出现高光时刻吗
    App开发常见布局,流式布局讲解
  • 原文地址:https://www.cnblogs.com/Godfunc/p/6039464.html
Copyright © 2020-2023  润新知