博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 中activity调用本地service中的方法。
阅读量:6902 次
发布时间:2019-06-27

本文共 1133 字,大约阅读时间需要 3 分钟。

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);
       }

转载于:https://www.cnblogs.com/Westfalen/p/4419823.html

你可能感兴趣的文章
Android利用Gson解析嵌套多层的Json
查看>>
log4j.properties配置详解与实例
查看>>
Spring学习笔记:Spring概述,第一个IoC依赖注入案例
查看>>
let和var的区别
查看>>
《面向模式的软件体系结构1--模式系统》读书笔记(9)--- 模式系统
查看>>
2012年11月8日学习研究报告
查看>>
《黑客与画家》读后感
查看>>
jq中html(),text(),val()以及js中innerHTML,innerText和value
查看>>
**RESTful API版本控制策略
查看>>
win7更改配色方案介绍~
查看>>
CImageList用法介绍
查看>>
[LeetCode] 40. Combination Sum II
查看>>
1065. 单身狗(25)
查看>>
《程序员代码面试指南》第八章 数组和矩阵问题 未排序数组中累加和小于或等于给定值的最长子数组长度...
查看>>
23种设计模式
查看>>
ES6_入门(3)_顶层对象属性
查看>>
使用VNC(ubuntu 与 windows 互连 )
查看>>
Map和Stack的STL方法简介
查看>>
Tasks Queues and Cron Jobs(任务队列和时钟守护作业)
查看>>
BZOJ1070[SCOI2007]修车——最小费用最大流
查看>>