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

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

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

2 ответа

Решение

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

Попробуйте эту определенную работу.

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();
}
}