zoukankan      html  css  js  c++  java
  • android 中activity调用本地service中的方法。

    1.自定义一个接口,暴露服务中的方法

    public interface IService {
        /**服务中对外暴露的方法 */
        void methodInService();
    }

    2.自定一个服务类,继承service类

    3.在服务类中新建内部类,继承Binder,实现自定义的接口,并在onBind()方法中返回内部类的实例

    public class MyService extends Service {

        @Override
        public IBinder onBind(Intent intent) {
            return new MyBinder();
        }
        
        public class MyBinder extends Binder implements IService{

            @Override
            public void methodInService() {
                serviceMethod1();
            }
        }
        
        public void serviceMethod1(){
            System.out.println("serviceMethod1");    
            }
      }

    4.在清单文件中注册服务

        <service android:name="com.example.nativeservicemethod.MyService"></service></application>

    5.在activity中新建内部类,实现ServiceConnection,然后在onServiceConnected() 方法中强制转化接口实例。

    private class MyServiceConnection implements ServiceConnection {

            @Override
            public void onServiceDisconnected(ComponentName name) {
            }

            @Override
            public void onServiceConnected(ComponentName name, IBinder service) {
                iService = (IService) service;
            }
        };

    6.用bind绑定服务,用接口实例调用服务中暴露的方法。

      if (conn == null) {
                    conn = new MyServiceConnection();
                    bindService(new Intent(MainActivity.this, MyService.class), conn, Context.BIND_AUTO_CREATE);
           }

  • 相关阅读:
    vue比较模板来跟新数据
    iframe自适应高度
    springmvc接口ios网络请求
    spring mvc实现接口参数统一更改
    spring mvc实现自定义注解
    基于redis集群实现的分布式锁,可用于秒杀,定时器。
    java使用javax.mail进行免费的邮件发送
    前端图片压缩上传(纯js的质量压缩,非长宽压缩)
    java项目中的路径获取,request
    阿里云(腾讯云类似)服务器控制台配置开放所有的端口
  • 原文地址:https://www.cnblogs.com/Westfalen/p/4419823.html
Copyright © 2011-2022 走看看