当firebase值更改时,sharedPreferenceActivity自动关闭

时间:2016-09-12 07:46:46

标签: android firebase firebase-realtime-database

我正在进行共享偏好活动,用户可以在其中更改有关它们的一些数据,并在firebase数据库中删除更改

我不明白的是,当一个值被更改时,首选项活动就会完成

我的代码如下

public class PatientPersonalInformation extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener{

private LoadingDialog dialog;
private FirebaseUserGrabber userGrabber;

@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.patientpersonal);
    userGrabber = new FirebaseUserGrabber(this);
}

@SuppressWarnings("deprecation")
@Override
protected void onPause() {
    super.onPause();
    getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}

@SuppressWarnings("deprecation")
@Override
protected void onResume() {
    super.onResume();
    getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);

}

@SuppressWarnings("deprecation")
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) {
    switch (s) {
        case "emergencynumber":
            userGrabber.setEmergencyNumber(sharedPreferences.getString(s, ""));
            break;
        case "useCoupons":
            userGrabber.setCopounsUsage(sharedPreferences.getBoolean(s, false), false);
            break;
    }
}

}

userGrabber就是那个代码

ref.child(path).setValue(data).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            //just toast
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            //just Toast
        }
    });;

根据调试,如果此行成功,则会导致活动关闭,否则不会发生任何事情

编辑1

我想到的是,活动本身并没有被关闭,只是其他活动被打开(没有为此编写代码)而且偏好活动隐藏在后面,看起来像firebase监听器被激活并激活它的活动(我正在使用listenerForSingleValueEvent())+我试图更改没有连接到它的监听器的字段,同样的情况也是如此

任何人都可以解释,谢谢。

0 个答案:

没有答案