0

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

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

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

4

1 回答 1

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);


                }
            }
        }

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

这是您在其中找到保存值的复选框或切换首选项的链接。分析第一 链接。

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

第一张桌子

第二张桌子

第三张表

于 2013-09-10T17:52:50.027 回答