客户端如何调用IBinder接口对象

代码:

	public void funclick(View view){
		Intent _intent = new Intent(MainActivity.this,MyService.class);
		bindService(_intent, conn, BIND_AUTO_CREATE);
	}

	private ServiceConnection conn = new ServiceConnection() {

		@Override
		public void onServiceDisconnected(ComponentName arg0) {

		}

		@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			String mynameStr = ((MyBinder)service).helloWorld("bitch");
			Log.e("mynameStr", mynameStr+"~");
		}
	};

对于这样的一个service.有什么不同呢。服务端的代码可以参照我上篇博文,通过打印log发现。onStart或者onstartCommand并没有被调用哦。

到此,我们仍然不会满足,因为我们只是调用了MyBinder中的方法,并没有调用Myservice方法嘛。所以。我们要增加一个返回MyserVice的方法:

package com.example.mydownload;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;

//实现接口中的方法

public class MyService extends Service {
	//接口对象
	IBinder mybBinder = new MyBinder();

	class MyBinder extends Binder{
		<span style="color:#ff0000;">public MyService getMyService(){
			return MyService.this;
		}</span>
	public String helloWorld(String name){
			return name;
		}
	}

	@Override
	public void onCreate() {
		Log.e("log", "onCreate");
		super.onCreate();
	}
Log.e("log", "hello,bitch!");

	@Override
	public void onDestroy() {
		Log.e("log", "onDestroy");
		super.onDestroy();
	}

	@Override
	public int onStartCommand(Intent intent, int flags, int startId) {
		Log.e("log", "onStartCommand");
		return super.onStartCommand(intent, flags, startId);
	}

	@Override
	public IBinder onBind(Intent arg0) {
		return mybBinder;
	}

}

然后修改客户端代码:

@Override
		public void onServiceConnected(ComponentName name, IBinder service) {
			((MyBinder)service).getMyService().helloService();
		}

客户端如何调用IBinder接口对象,布布扣,bubuko.com

时间: 2024-10-10 14:31:27

客户端如何调用IBinder接口对象的相关文章

client怎样调用IBinder接口对象

代码: public void funclick(View view){ Intent _intent = new Intent(MainActivity.this,MyService.class); bindService(_intent, conn, BIND_AUTO_CREATE); } private ServiceConnection conn = new ServiceConnection() { @Override public void onServiceDisconnecte

服务端如何暴露IBinder接口对象

服务端如何暴露IBinder接口对象: package com.example.mydownload; import android.app.Service; import android.content.Intent; import android.os.Binder; import android.os.IBinder; public class MyService extends Service { //接口对象 private IBinder mybBinder = new MyBind

服务端怎样暴露IBinder接口对象

服务端怎样暴露IBinder接口对象: package com.example.mydownload; import android.app.Service; import android.content.Intent; import android.os.Binder; import android.os.IBinder; import android.util.Log; //实现接口中的方法 public class MyService extends Service { //接口对象 IB

java 调用webservice接口wsdl,推荐使用wsdl2java,放弃wsimport

网上说wsimport是jdk1.6后自带的客户端生成调用webservice接口的工具,其实我挺喜欢原生的东西,毕竟自家的东西用着应该最顺手啊,但往往让人惊艳的是那些集成工具. 本机jdk1.8.1的,直接按网上说的wsimport -keep -p wsimport.test http://****:****/***.wsdl 报警报错,报警warning可以忽略,但错误error 难以解决,说具有相同名称 "xxx" 的类/接口已在使用.请使用类定制设置来解决此冲突.找了许多资料

java调用http接口并返回json对象

1 import java.io.BufferedReader; 2 import java.io.InputStreamReader; 3 import java.io.OutputStreamWriter; 4 import java.io.PrintWriter; 5 import java.net.URL; 6 import java.net.URLConnection; 7 import java.net.URLEncoder; 8 import java.util.HashMap;

调用支付宝接口Android客户端没有支付宝APP的情况下解决无法调用支付宝页面的问题

这几天一直研究支付宝接口调用,因为当前应用中需要调用支付宝接口作移动支付. 遇到一个问题困扰几天,就是当我们的手机端未安装支付宝APP的时候,需要在自己应用中调用支付宝的登陆网页进行支付.我是Android开发,网上有很多小伙伴都遇到了无法调起网页支付宝登陆页面的问题,在此给大家分享一个解决方案,希望能帮助遇到同样问题困扰的小伙伴. 网上也有很多贴,都是说要加入H5PayActivity和AuthActivity的配置来解决,但是并不起作用,我的就是,虽然有跳转的动作,但是直接一个白板页面招呼,

Android通过Service调用远程接口—AIDL-进程间通信

在Andorid平台中,各个组件运行在自己的进程中,他们之间是不能相互访问的,但是在程序之间是不可避免的要传递一些对象,在进程之间相互通信.为了实现进程之间的相互通信,Andorid采用了一种轻量级的实现方式RPC(Remote Procedure Call 远程进程调用)来完成进程之间的通信,并且Android通过接口定义语言(Andorid Interface Definition Language ,AIDL)来生成两个进程之间相互访问的代码,例如,你在Activity里的代码需要访问Se

php中创建和调用webservice接口示例

这篇文章主要介绍了php中创建和调用webservice接口示例,包括webservice基本知识.webservice服务端例子.webservice客户端例子,需要的朋友可以参考下 作为开发者来讲,要想写webservice接口或者调用别人的webservice接口,首先需要了解什么是webservice.简单说, WebService就是一些站点开放一些服务出来, 也可以是你自己开发的Service, 也就是一些方法, 通过URL,指定某一个方法名,发出请求,站点里的这个服务(方法),接到

Android 开发之Android 应用程序如何调用支付宝接口

1.到支付宝官网,下载支付宝集成开发包 由于android设备一般用的都是无线支付,所以我们申请的就是支付宝无线快捷支付接口.下面是申请的地址以及下载接口开发包的网址:https://b.alipay.com/order/productDetail.htm?productId=2014110308141993(如果链接失效,你可以到支付宝官网商家服务模块中找到 快捷支付(无线)这个服务.)  下载集成开发包(http://download.alipay.com/public/api/base/W