class MyService extends Service {
@Override
public void onCreate() {
// The service is being created
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// The service is starting, due to a call to startService()
return mStartMode;
}
@Override
public IBinder onBind(Intent intent) {
// A client is binding to the service with bindService()
return mBinder;
}
@Override
public void onDestroy() {
// The service is no longer used and is being destroyed
}
}
编写自己的服务就要选择性的覆盖上面的几个方法.
通常编写Service的方式有三种:
1 自己应用程序使用的LocalService,不用于IPC.
public class LocalService extends Service {
private final IBinder mBinder = new LocalBinder();
//用于 onBind 方法
public class LocalBinder extends Binder {
LocalService getService() {
return LocalService.this;
}
}
@Override
public void onCreate() {
//做一些资源分配操作
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// We want this service to continue running until it is explicitly
// stopped, so return sticky.
return START_STICKY;
}
@Override
public void onDestroy() {
//释放资源
}
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
}
class Binding extends Activity {
private boolean mIsBound;
private LocalService mBoundService;
//定义一个Observer,在Context.bindService() 方法中被当做参数传入
private ServiceConnection mConnection = new ServiceConnection() {
publ