WEB开发网
开发学院手机开发Android 开发 Android 编写 Service 入门 阅读

Android 编写 Service 入门

 2010-04-09 06:15:00 来源:WEB开发网   
核心提示:@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);this.bindService(new Intent("com

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

this.bindService(new Intent("com.easymorse.CountService"),

this.serviceConnection, BIND_AUTO_CREATE);

}

@Override

protected void onDestroy() {

super.onDestroy();

this.unbindService(serviceConnection);

}

}

编写传递基本型数据的远程服务

上面的示例,可以扩展为,让其他应用程序复用该服务。这样的服务叫远程(remote)服务,实际上是进程间通信(RPC)。

这时需要使用android接口描述语言(AIDL)来定义远程服务的接口,而不是上述那样简单的java接口。扩展名为aidl而不是java。可用上面的ICountService改动而成ICountSerivde.aidl,eclipse会自动生成相关的java文件。

package com.easymorse;

interface ICountService {

int getCount();

}

编写服务(Service)类,稍有差别,主要在binder是通过远程获得的,需要通过桩(Stub)来获取。桩对象是远程对象的本地代理。

package com.easymorse;

import android.app.Service;

import android.content.Intent;

import android.os.IBinder;

import android.os.RemoteException;

import android.util.Log;

public class CountService extends Service {

private boolean threadDisable;

private int count;

private ICountService.Stub serviceBinder = new ICountService.Stub() {

@Override

public int getCount() throws RemoteException {

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 (!threadDisable) {

上一页  1 2 3 4 5 6 7  下一页

Tags:Android 编写 Service

编辑录入:coldstar [复制链接] [打 印]
赞助商链接