步骤:建立服务器端服务,暴露接口

1.BinderService

  /**
* @Title BinderService.java
* @package cn.boxai.binderservice
* @since
* @version 1.0.0
* @author Vic Lee
* @date Aug 14, 2016-3:50:04 PM
*/
package cn.boxai.binderservice; import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder; public class BinderService extends Service { //step:1 difind mBinder
IBinder mBinder=new MyBinder(); //step:3 implements mBinder //step:2 difine MyBinder and extends
class MyBinder extends Binder
{

  //调用其他的服务 

public BinderService getService()
       {
        return BinderService.this;
       }

      public String helloWorld(String name)
{
return "You name is :"+name;
}
}
31
    //添加其他的服务
    public void helloservice()

    {
      for (int i = 0; i < 100; i++)
      {
        try {
          Thread.sleep(1000);
          Log.i("helloservice", i+"");
          } catch (InterruptedException e)

            {
              e.printStackTrace();
            }
      }
    }

    

  

   //step:4 retrue mBinder Exposed interface
@Override
public IBinder onBind(Intent intent) { return mBinder; } }

2.客户端

 package cn.boxai.binderservice;

 import cn.boxai.binderservice.BinderService.MyBinder;
import android.os.Bundle;
import android.os.IBinder;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class BinderServiceActivity extends Activity {
Button mBinderServiceButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBinderServiceButton=(Button) findViewById(R.id.btn_BinderService);
mBinderServiceButton.setOnClickListener(new OnClickListener()
{ @Override
public void onClick(View v)
{
// step 5:call interface from server
//bindService parameter=>_intent
Intent _intent=new Intent(BinderServiceActivity.this,BinderService.class);
bindService(_intent, conn, BinderService.BIND_AUTO_CREATE);
}
}); }
//step 6:bindService parameter=>conn
private ServiceConnection conn=new ServiceConnection()
{ @Override
public void onServiceDisconnected(ComponentName name) { // TODO Auto-generated method stub } @Override
public void onServiceConnected(ComponentName name, IBinder service) { //step 7:receive server method
String bindername=((MyBinder)service).helloWorld("LD");
Toast.makeText(BinderServiceActivity.this, bindername, 3000).show();
Log.i("BinderService", "BinderService==>"+bindername);       ((MyBinder)service).getService().helloservice();//绑定其他服务
}
}; }

取消绑定

客户端

   Button mUnBinderServiceButton;

    //取消绑定
mUnBinderServiceButton=(Button) findViewById(R.id.btn_UnBinderService);
mUnBinderServiceButton.setOnClickListener(new OnClickListener()
{ @Override
public void onClick(View v)
{
unbindService(conn); }
});

服务端端

    @Override
public boolean onUnbind(Intent intent) { // TODO Auto-generated method stub
return super.onUnbind(intent); }

Android BinderService 过程的更多相关文章

  1. Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

    作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...

  2. Android系统启动过程-uBoot+Kernel+Android

    摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链 ...

  3. Android 核心分析 之八Android 启动过程详解

    Android 启动过程详解 Android从Linux系统启动有4个步骤: (1) init进程启动 (2) Native服务启动 (3) System Server,Android服务启动 (4) ...

  4. Android启动过程以及各个镜像的关系

    Android启动过程 Android在启动的时候,会由UBOOT传入一个init参数,这个init参数指定了开机的时候第一个运行的程序,默认就是init程序,这个程序在ramdisk.img中.可以 ...

  5. Android编译过程详解(一)

    Android编译过程详解(一) 注:本文转载自Android编译过程详解(一):http://www.cnblogs.com/mr-raptor/archive/2012/06/07/2540359 ...

  6. Android(java)学习笔记162:Android启动过程(转载)

    转载路径为: http://blog.jobbole.com/67931/ 1. 关于Android启动过程的问题: 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样 ...

  7. Android 安装过程中的问题

    Android  安装过程中的问题 上一篇我说到配置android环境,但是在具体的安装过程中,因为下载的软件或者方法不同,导致没有正确的结果,如果有一些错误的时候,可以试一试关闭eclipse软件, ...

  8. Android 系统启动过程简单记录

    本文记录Android系统启动过程,包含从linux kernerl到luancher启动完成的过程: 1.linux内核完成系统设置后,会在系统文件中寻找‘init’文件,然后启动root进程或者说 ...

  9. Android 深入浅出 - Android系统启动过程

    Activity的类继承关系及跟踪Activity的启动 Android系统启动过程 https://study.163.com/course/courseLearn.htm?courseId=213 ...

随机推荐

  1. Find Missing Term in Arithmetic Progression 等差数列缺失项

    查找等差数列中的缺失项. e.g.Input: arr[] = {2, 4, 8, 10, 12, 14} Output: 6 Input: arr[] = {1, 6, 11, 16, 21, 31 ...

  2. 利用tween.js算法生成缓动效果

    在讲tween类之前,不得不提的是贝塞尔曲线了.首先,贝塞尔曲线是指依据四个位置任意的点坐标绘制出的一条光滑曲线.它在作图工具或动画中中运用得比较多,例如PS中的钢笔工具,firework中的画笔等等 ...

  3. 基于C#和Asp.NET MVC开发GPS部标监控平台

    基于交通部796标准开发部标监控平台,选择开发语言和技术也是团队要思考的因素,其实这由团队自己擅长的技术来决定,如果擅长C#和Asp.NET, 当然开发效率就高很多.当然了技术选型一定要选用当前主流的 ...

  4. RabbitMq中的交换机

          Rabbitmq的核心概念(如下图所示):有虚拟主机.交换机.队列.绑定:                    交换机可以理解成具有路由表的路由程序,仅此而已.每个消息都有一个称为路由键 ...

  5. Linux 安装记录

    ######ubuntu-16.04.1-desktop-amd64 ||| Unity desktop Environment, NOT !!! ######deepin-15.3-amd64.is ...

  6. php 截取代码方法(140个字后的。)

    //截取摘要public static function mbsubstr($str){    $strleng = mb_strlen($str,"utf8");    $mbs ...

  7. 。。。欢乐捕鱼App WeX5 连接打包代理服务失败,请检查代理服务地址是否正确。。。

    今天学习了WeX5,第一次使用,使用它打包一个Web App 欢乐捕鱼的时候,在最终打包生成Native App的时候突然报错了,说:"连接打包代理服务失败,请检查代理服务地址是否正确&qu ...

  8. java快速学习

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Java是面向对象语言.这门语言其实相当年轻,于1995年才出现,由Sun公司出品 ...

  9. Microsoft Visual Studio 2015激活密匙

    企业版:http://download.microsoft.com/download/B/8/F/B8F1470D-2396-4E7A-83F5-AC09154EB925/vs2015.ent_chs ...

  10. 夺命雷公狗-----React---28--小案例之react经典案例todos(全选和反选)完

    这个功能实现的步骤如下所示: 最终实现全选和反选,代码如下所示: <!DOCTYPE html> <html lang="en"> <head> ...