我目前正在使用每隔15分钟同步一次数据的SyncAdapter。是否可以将该服务绑定到活动,以便我可以向用户显示当前的同步状态是什么?将SyncAdapter服务绑定到活动
我在有关可以与信使和处理程序通信的服务和活动之间的IPC文档中阅读。但是我无法在SyncService onBind方法中返回mMessenger.getBinder(),因为我必须因SyncAdapter返回syncAdapter.getSyncAdapterBinder()。
我目前正在使用每隔15分钟同步一次数据的SyncAdapter。是否可以将该服务绑定到活动,以便我可以向用户显示当前的同步状态是什么?将SyncAdapter服务绑定到活动
我在有关可以与信使和处理程序通信的服务和活动之间的IPC文档中阅读。但是我无法在SyncService onBind方法中返回mMessenger.getBinder(),因为我必须因SyncAdapter返回syncAdapter.getSyncAdapterBinder()。
可以返回不同的IBinder
,取决于是为Intent
设置的操作。看看我的回应Android SyncAdapter: how to get notified of specific sync happened
试试这个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();
}
}
我现在就这样。但是我需要返回mMessenger.getBinder()来处理activtiy和service之间的通信。这里是文档: https://developer.android.com/guide/components/bound-services.html#Messenger – Tooroop
Thanks @Marten。这可以工作,可能是解决方案。我会尽力实施,我会尽快回复你。 – Tooroop