Привязать службу 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();
}
}