我的应用程序有2种自动同步模式(所有网络/只是WiFi)。
我想听听用户在Android设置中打开自动同步(不是我的应用程序设置),然后相应地设置我的自动模式。
当用户在Android设置中开启同步时,我该如何收听?
答案 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 强>
<强> Third table 强>