0

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

我在文档中阅读了有关可以与 Messenger 和 Handler 通信的服务和活动之间的 IPC。但是我不能在我的 SyncService onBind 方法中返回 mMessenger.getBinder(),因为由于 SyncAdapter,我必须返回 syncAdapter.getSyncAdapterBinder()。

4

2 回答 2

1

您可以返回不同的IBinder,具体取决于为 设置的操作Intent。查看我对Android SyncAdapter 的回复:如何获得特定同步发生的通知

于 2016-07-12T22:04:37.010 回答
1

试试这个definetiley的工作。

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();
}
}
于 2016-07-07T10:28:24.593 回答