解决方案 »
- ZoomControls图片放大缩小到一定程度的时候按钮不可再点,怎么实现??
- canvas 画图中,怎么移动用path创建的ShapeDrawable 对象呢?
- 求解。。。用java在Andorid平台上的塔防小游戏,路径怎么计算最好。
- 想通过Android远程控制PC,手机上的操作如何传递给PC呢
- 求一份Android可以导出VCard格式文件的源码。
- 如何删除gmail账号?
- 平板android系统移植
- 关于左边留间隔的问题marginLeft
- 自定控件通过addView添加的资源在平板消失?
- MIUI7,Android版本5.0.2,一个程序发送自定义广播,另一个程序没有接收到
- android总联不上PC
- 布局的问题
/*Activity与服务进行通信,开发人员通常把通信方法定义在接口里,然后让Ibinder对象实现该接口,而Activity通过该接口引用服务onBind()方法返回的Ibinder对象,然后调用Ibinder对象里自定义的通信方法。例子如下:本例是一个本地服务,即服务与Activity在同一个应用内部。
接口:*/
public interface ICountService {
public int getCount();
}
服务类:
public class CountService extends Service {
private boolean quit;
private int count;
private ServiceBinder serviceBinder = new ServiceBinder();public class ServiceBinder extends Binder implements ICountService {
@Override
public int getCount() {
return count;
}
}
@Override
public IBinder onBind(Intent intent) {
return serviceBinder;
}
@Override
public void onCreate() {
super.onCreate();
new Thread(new Runnable() {
@Override
public void run() {
while (!quit) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {}
count++;
}
}
}).start();
}@Override
public void onDestroy() {
super.onDestroy();
this.quit = true;
}
}
//客户端Activity:
public class ClientActivity extends Activity {
private ICountService countService; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.bindService(new Intent(this, CountService.class), this.serviceConnection, BIND_AUTO_CREATE);
} @Override
protected void onDestroy() {
super.onDestroy();
this.unbindService(serviceConnection);
}
private ServiceConnection serviceConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
countService = (ICountService) service;//对于本地服务,获取的实例和服务onBind()返回的实例是同一个
int i = countService.getCount();
Log.v("CountService", "Count is " + i);
}
@Override
public void onServiceDisconnected(ComponentName name) {
countService = null;
}
};
}
private IMyService.Stub myService = new IMyService.Stub() {
public Location getMyLocation(boolean locateType, int provider) throws RemoteException {
return getLocation(locateType, provider);
}
};
@Override
public IBinder onBind(Intent intent) {
return myService;
}
然后在activity中通过myService 对象就可以调用接口中的方法喽
不太明白的话 看看这个吧 :http://blog.sina.com.cn/s/blog_643e83860100p07k.html