Android如何在帐户和设置中启用同步功能

时间:2013-09-05 11:03:19

标签: android settings sync

我的应用程序有2种自动同步模式(所有网络/只是WiFi)。

我想听听用户在Android设置中打开自动同步(不是我的应用程序设置),然后相应地设置我的自动模式。

当用户在Android设置中开启同步时,我该如何收听?

1 个答案:

答案 0 :(得分:0)

这是内容提供商,其中存储了该复选框的值。

@覆盖

public boolean  [More ...] onPreferenceTreeClick(PreferenceScreen preferences, Preference preference) {

    if (preference instanceof SyncStateCheckBoxPreference) {

        SyncStateCheckBoxPreference syncPref = (SyncStateCheckBoxPreference) preference;

        String authority = syncPref.getAuthority();

        Account account = syncPref.getAccount();

        boolean syncAutomatically = ContentResolver.getSyncAutomatically(account, authority);

        if (syncPref.isOneTimeSyncMode()) {

            requestOrCancelSync(account, authority, true);

        } else {

            boolean syncOn = syncPref.isChecked();

            boolean oldSyncState = syncAutomatically;

            if (syncOn != oldSyncState) {

                // if we're enabling sync, this will request a sync as well

                ContentResolver.setSyncAutomatically(account, authority, syncOn);

                // if the master sync switch is off, the request above will

                // get dropped.  when the user clicks on this toggle,

                // we want to force the sync, however.

                if (!ContentResolver.getMasterSyncAutomatically() || !syncOn) {

                    requestOrCancelSync(account, authority, syncOn);


                }
            }
        }

这是你需要做一些额外工作的事情。设置始终将每个值保存到共享首选项。您需要从共享首选项中找到该值并注册该共享首选项更改侦听器。我不知道是否可以收听同步复选框。

这是您找到保存值的复选框或切换首选项的链接。 分析First Second个链接。

还有一点需要注意,设置代码会在此表中保存一些值。

<强> First table

Second table

<强> Third table