0

現在、15 分ごとにデータを同期する SyncAdapter を使用しています。そのサービスをアクティビティにバインドして、現在の同期ステータスをユーザーに示すことはできますか?

メッセンジャーとハンドラーと通信できるサービスとアクティビティ間の IPC に関するドキュメントを読みました。しかし、SyncAdapter のために syncAdapter.getSyncAdapterBinder() を返す必要があるため、SyncService onBind メソッドで mMessenger.getBinder() を返すことができません。

4

2 に答える 2

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

IBinderに設定されたアクションに応じて、異なる を返すことができますIntentAndroid SyncAdapterへの私の応答を確認してください: 特定の同期が発生したことを通知する方法

于 2016-07-12T22:04:37.010 に答える