我可以在Application类中设置OnSharedPreferenceChangeListener吗?

时间:2016-11-24 17:37:52

标签: java android

我有一个处理通知的首选项。我正在设置活动中实现OnSharedPreferenceChangeListener,它启用/禁用警报服务(注意:我知道使用警报进行通知是一种不好的做法。我将很快切换到GCM。)

该应用程序具有登录系统。现在,我想在用户注销后禁用警报服务。我将SharedPreferences中的"notif" boolean更改为false

以下是问题: - 我可以在Application类中实现OnSharedPreferenceChangeListener,就像这样

public class ApplicationClass extends Application implements SharedPreferences.OnSharedPreferenceChangeListener {
    SharedPreferences sp;
    @Override
    public void onCreate() {
        super.onCreate();
        sp = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
        sp.registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        if (sharedPreferences.getBoolean("notif",false)){
            AlarmService.setAlarm(getBaseContext());
        }else {
            AlarmService.cancelAlarm(getBaseContext());
        }
    }
}

这是对的吗?

此外,我们还会感谢其他提示。

0 个答案:

没有答案