如果您将 Activity 绑定到 Service,则应该实现Binder
界面在你的Service
, e.g.
public class ServiceBinder extends Binder {
public MyService getService() {
return MyService.this;
}
}
在您的活动中,创建一个新的ServiceConnection
类将用于让您访问您的服务:
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
mMyService = ((MyService.ServiceBinder)service).getService();
}
public void onServiceDisconnected(ComponentName className) {
mMyService = null;
}
};
这里的成员变量mMyService
将使您能够访问您的服务类的所有公共成员。
要创建连接,请执行doBindService
and doUnbindService
在您的活动中:
void doBindService() {
bindService(new Intent(this, MyService.class), mConnection, Context.BIND_AUTO_CREATE);
}
void doUnbindService() {
// Detach our existing connection.
unbindService(mConnection);
}
希望这可以帮助!