Вы можете привязать свою деятельность к услуге, см. http://developer.android.com/reference/android/app/Service.html.
Создайте реализацию интерфейса Binder
в вашем Service
, например,
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
предоставит вам доступ ко всем открытым членам вашего класса Service.
Чтобы создать соединение, внедрите doBindService
и doUnbindService
в своей деятельности:
void doBindService() {
bindService(new Intent(this, MyService.class), mConnection, Context.BIND_AUTO_CREATE);
}
void doUnbindService() {
// Detach our existing connection.
unbindService(mConnection);
}
Надеюсь, это поможет!