我有一个处理通知的首选项。我正在设置活动中实现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());
}
}
}
这是对的吗?
此外,我们还会感谢其他提示。