Привязать службу SyncAdapter к Activity

В настоящее время я работаю с SyncAdapter, который синхронизирует данные каждые 15 минут. Можно ли связать эту службу с действием, чтобы я мог показать пользователю текущий статус синхронизации?

Я читал в документации о IPC между сервисами и действиями, которые вы можете общаться с мессенджерами и обработчиками. Но я не могу вернуть mMessenger.getBinder() в моем методе SyncService onBind, потому что мне нужно вернуть syncAdapter.getSyncAdapterBinder() из-за SyncAdapter.




Ответы (2)


Вы можете вернуть другой IBinder, в зависимости от действия, которое было установлено для Intent. Ознакомьтесь с моим ответом на Android SyncAdapter: как получать уведомления о конкретной синхронизации

person Marten    schedule 12.07.2016
comment
Спасибо @Мартен. Это может сработать и, вероятно, является решением. Я постараюсь реализовать это и вернусь к вам по этому поводу. - person Tooroop; 13.07.2016

Попробуйте эту работу.

public class SyncService extends Service {

private static SyncAdapter sSyncAdapter = null;

private static final Object sSyncAdapterLock = new Object();

@Override
public void onCreate() {

    synchronized (sSyncAdapterLock) {
        if (sSyncAdapter == null) {
            sSyncAdapter = new SyncAdapter(getApplicationContext(), true);
        }
    }
}

@Override
public IBinder onBind(Intent intent) {

    return sSyncAdapter.getSyncAdapterBinder();
}
}
person manishkaushik    schedule 07.07.2016
comment
У меня сейчас так. Но мне нужно вернуть mMessenger.getBinder() для связи между активностью и сервисом. Вот документ: developer.android.com/guide/components/< /а> - person Tooroop; 07.07.2016