Android BinderService 过程
步骤:建立服务器端服务,暴露接口
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 过程的更多相关文章
- Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解
作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位.那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能.然而这个时候各种 ...
- Android系统启动过程-uBoot+Kernel+Android
摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链 ...
- Android 核心分析 之八Android 启动过程详解
Android 启动过程详解 Android从Linux系统启动有4个步骤: (1) init进程启动 (2) Native服务启动 (3) System Server,Android服务启动 (4) ...
- Android启动过程以及各个镜像的关系
Android启动过程 Android在启动的时候,会由UBOOT传入一个init参数,这个init参数指定了开机的时候第一个运行的程序,默认就是init程序,这个程序在ramdisk.img中.可以 ...
- Android编译过程详解(一)
Android编译过程详解(一) 注:本文转载自Android编译过程详解(一):http://www.cnblogs.com/mr-raptor/archive/2012/06/07/2540359 ...
- Android(java)学习笔记162:Android启动过程(转载)
转载路径为: http://blog.jobbole.com/67931/ 1. 关于Android启动过程的问题: 当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样 ...
- Android 安装过程中的问题
Android 安装过程中的问题 上一篇我说到配置android环境,但是在具体的安装过程中,因为下载的软件或者方法不同,导致没有正确的结果,如果有一些错误的时候,可以试一试关闭eclipse软件, ...
- Android 系统启动过程简单记录
本文记录Android系统启动过程,包含从linux kernerl到luancher启动完成的过程: 1.linux内核完成系统设置后,会在系统文件中寻找‘init’文件,然后启动root进程或者说 ...
- Android 深入浅出 - Android系统启动过程
Activity的类继承关系及跟踪Activity的启动 Android系统启动过程 https://study.163.com/course/courseLearn.htm?courseId=213 ...
随机推荐
- 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 ...
- 利用tween.js算法生成缓动效果
在讲tween类之前,不得不提的是贝塞尔曲线了.首先,贝塞尔曲线是指依据四个位置任意的点坐标绘制出的一条光滑曲线.它在作图工具或动画中中运用得比较多,例如PS中的钢笔工具,firework中的画笔等等 ...
- 基于C#和Asp.NET MVC开发GPS部标监控平台
基于交通部796标准开发部标监控平台,选择开发语言和技术也是团队要思考的因素,其实这由团队自己擅长的技术来决定,如果擅长C#和Asp.NET, 当然开发效率就高很多.当然了技术选型一定要选用当前主流的 ...
- RabbitMq中的交换机
Rabbitmq的核心概念(如下图所示):有虚拟主机.交换机.队列.绑定: 交换机可以理解成具有路由表的路由程序,仅此而已.每个消息都有一个称为路由键 ...
- Linux 安装记录
######ubuntu-16.04.1-desktop-amd64 ||| Unity desktop Environment, NOT !!! ######deepin-15.3-amd64.is ...
- php 截取代码方法(140个字后的。)
//截取摘要public static function mbsubstr($str){ $strleng = mb_strlen($str,"utf8"); $mbs ...
- 。。。欢乐捕鱼App WeX5 连接打包代理服务失败,请检查代理服务地址是否正确。。。
今天学习了WeX5,第一次使用,使用它打包一个Web App 欢乐捕鱼的时候,在最终打包生成Native App的时候突然报错了,说:"连接打包代理服务失败,请检查代理服务地址是否正确&qu ...
- java快速学习
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Java是面向对象语言.这门语言其实相当年轻,于1995年才出现,由Sun公司出品 ...
- Microsoft Visual Studio 2015激活密匙
企业版:http://download.microsoft.com/download/B/8/F/B8F1470D-2396-4E7A-83F5-AC09154EB925/vs2015.ent_chs ...
- 夺命雷公狗-----React---28--小案例之react经典案例todos(全选和反选)完
这个功能实现的步骤如下所示: 最终实现全选和反选,代码如下所示: <!DOCTYPE html> <html lang="en"> <head> ...