将SyncAdapter服务绑定到Activity

时间:2016-07-07 10:16:04

标签: android android-service android-syncadapter android-service-binding syncservices

我目前正在使用SyncAdapter,它每15分钟同步一次数据。是否可以将该服务绑定到活动,以便我可以向用户显示当前的同步状态是什么?

我在有关服务和活动之间的IPC文档中读到了可以与信使和处理程序进行通信的文档。但我无法在SyncService onBind方法中返回mMessenger.getBinder(),因为我必须返回syncAdapter.getSyncAdapterBinder(),因为SyncAdapter。

2 个答案:

答案 0 :(得分:1)

试试这个定义工作。

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

答案 1 :(得分:1)

您可以返回其他IBinder,具体取决于为Intent设置的操作。查看我对Android SyncAdapter: how to get notified of specific sync happened

的回复