将 SyncAdapter 服务绑定到 Activity

Bind SyncAdapter service to Activity

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

我阅读了有关服务和活动之间的 IPC 的文档,您可以与 Messengers 和 Handlers 进行通信。但是我不能在我的 SyncService onBind 方法中 return mMessenger.getBinder() 因为我必须 return syncAdapter.getSyncAdapterBinder() 因为 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();
}
}

您可以 return 不同的 IBinder,具体取决于为 Intent 设置的操作。查看我对

的回复