将 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
设置的操作。查看我对
的回复
我目前正在使用每 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
设置的操作。查看我对