1 写个类继承Service 重写 onBind方法 返回一个IBinder 对象(传递到连接成功时用)

2 服务中 写一个内部类 继承IBinder 并且实现一个接口(用于抽取方法)继承IBinder 是可以在1步骤中返回这个内部类的对象,内部类的对象可以调用服务中的其它方法。在实现接口的方法中 调用服务的方法。

3 写一个类 实现ServiceConnection服务连接,重写 连接成功 和连接失败的方法 ,连接成功时会传入一个IBinder 对象,就是上面那个内部类对象,这样就通过这个对象调用服务中的方法了。实现接口只是为了 限制访问服务中的相关方法的调用。把传入的对象 强制转换成接口对象

定义一个接口,里面定义方法,此方法实现的时候 调用服务中指定的方法
    public interface GetService{
        void getService();
    }

在继承服务中的类中 定义一个内部类 继承Binder 并且实现接口.内部类可以调用服务中的方法,所以用内部类实现接口中的方法,用此方法调用服务中的方法即可
public class MyService extends Service{
        public Ibinder onBind(Intent intent){
            //返回一个IBinder对象,给连接成功时用的 用来调用服务中的方法
            return new MidMan();
        }

      //内部类继承Binder 实现接口
        class MidMan extends Binder implements GetService{
            public void getService(){
                doServices();
            }
   }

        //定义并实现我们要用的服务中的方法
        public void doServices(){
            System.out.println("The Service Method!");

        }

        //服务中的其它方法,不给用
        public void doOtherServices(){
            System.out.println("inner use!");
        }

}

在Activity中
        private Intent int;
        private MyServiceConn conn
        GetService gs;
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

int = new Intent(this,MyService.class);
            conn = new MyServiceConn();

//绑定服务
            bindService(int,conn,BIND_AUTO_CREATE);
        }

  //连接服务成功,调用此方法
     class MyServiceConn implements ServiceConnection{

public void onServiceConnected(Component name,IBinder service){
                 //service 就是 上面onBind()返回的对象,强转是为了只让用接口里的方法
                  gs = (GetService) service;

              }

           public void onServiceDisconnected(Component name){

             }

     }
      //使用服务中指定的方法
        public void click(View view){
            gs.GetServices();//GetServices()调用我们想要的 doServices();

        }

Android中 服务里的方法抽取成接口的更多相关文章

  1. 【转】Android中JNI的使用方法

    Android中JNI的使用方法 首先看一下Android平台的框架图:(网上盗用) 可以看到Android上层的Application和ApplicationFramework都是使用Java编写, ...

  2. Android中JNI的使用方法(转载)

    Android中JNI的使用方法 首先看一下Android平台的框架图:(网上盗用) 可以看到Android上层的Application和ApplicationFramework都是使用Java编写, ...

  3. android中的提示信息显示方法(toast应用)

    android中的提示信息显示方法(toast应用) (2011-10-17 11:02:06) 转载▼ 标签: android toast 杂谈 分类: Android android中toast的 ...

  4. Android多线程编程<一>Android中启动子线程的方法

          我们知道在Android中,要更新UI只能在UI主线程去更新,而不允许在子线程直接去操作UI,但是很多时候,很多耗时的工作都交给子线程去实现,当子线程执行完这些耗时的工作后,我们希望去修改 ...

  5. Android中的布局优化方法

    http://blog.csdn.net/rwecho/article/details/8951009 Android开发中的布局很重要吗?那是当然.一切的显示样式都是由这个布局决定的,你说能不重要吗 ...

  6. Android(java)学习笔记229:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)

    1.接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2.利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.jav ...

  7. Android中Handler的使用方法及实例(基础回顾)

    Handler使用例1 这个例子是最简单的介绍handler使用的,是将handler绑定到它所建立的线程中.本次实验完成的功能是:单击Start按钮,程序会开始启动线程,并且线程程序完成后延时1s会 ...

  8. Android(java)学习笔记172:服务(service)之绑定服务调用服务里面的方法 (采用接口隐藏代码内部实现)

    1. 接口 接口可以隐藏代码内部的细节,只暴露程序员想暴露的方法 2. 利用上面的思想优化之前的案例:服务(service)之绑定服务调用服务里面的方法,如下: (1)这里MainActivity.j ...

  9. Android中锁定文件的方法

    androidSDK中并没有锁定文件相关的api. 但是android是基于linux操作系统的,linux比较底层,灵活性也更大,为了实现锁定文件的效果,大概有以下几种办法: 用chmod命令修改文 ...

随机推荐

  1. C#_DataTable导出Execl为自定义标题

    public bool ExportExcel(DataTable tb, string path, string tbName) { //excel 2003格式 string connString ...

  2. 3D动画

    先上一道菜 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  3. js高级程序设计(四)变量、作用域和内存问题

    基本类型和引用类型的值 ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是 Undefined . Null . Boolean . Number 和 S ...

  4. CentOS怎样查看系统信息

    一.查看系统版本和核心版本 1 登陆CentOS,启动终端. 2 登陆root帐户,输入 cat  /etc/redhat-release,即可显示系统版本. 3 输入 uname  -r ,可以查询 ...

  5. sql server 导出数据到 Azure Hbase / Hive 详细步骤

    The Hadoop on Azure Sqoop Import Sample Tutorial Table of Contents   Overview   Goals Key technologi ...

  6. JavaWeb基础: 会话技术简介

    会话技术 用户使用Web应用的过程实际是调用了一系列的Servlet来组合处理请求,从而完成整个业务流.不同Servlet组合起来为用户服务的时候就会遇到一个数据共享和传输的问题,如何让多个Servl ...

  7. sap快捷搜索菜单栏

    对于像我这样的初学者来说,用好SAP菜单栏是非常重要的.正好,偶然发现了标准的菜单搜索程序,就分享下. REPORT:SSM_SEME T-CODE:SEARCH_SAP_MENU 菜单节点表:sme ...

  8. 冲销交货单WS_REVERSE_GOODS_ISSUE

    LOOP AT ITAB. AT END OF VBELN. PERFORM FRM_LOCK_DELIVERY(ZSDS0002) USING ITAB-VBELN. CALL FUNCTION ' ...

  9. 语句--分支语句if case

    语句是指程序命令,都是按照顺序执行的.语句在程序中的执行顺序称为“控制流”或者“执行流”.根据程序对运行时所收到的输入的响应,在程序每次运行时控制流可能有所不同. 语句可以嵌套,可以是以分号结尾的单行 ...

  10. [转]C#设置WinForm快捷键

    1.Alt+*(按钮快捷键)按钮快捷键也为最常用快捷键,其设置也故为简单.在大家给button.label.menuStrip等其他控件的Text属性指定名称时,在其后面加上‘&’然后在加上一 ...