1

我已经开发了一个带有推送服务的应用程序,在该应用程序中我正在更改接收推送的一些偏好,并在我onCreate()的主要活动功能中为该特定偏好编写了偏好更改侦听器,并像这样注册它:

static  OnSharedPreferenceChangeListener listner;
SharedPreferences prefs;

// 里面onCreate

prefs=getSharedPreferences(GCMIntentService.MY_PREFS, MODE_PRIVATE);
listner=new OnSharedPreferenceChangeListener() {

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sp, String key) {
        //Here is my code    
}

prefs.registerOnSharedPreferenceChangeListener(listner);

如果我的活动未运行或我的应用程序已关闭,我对是否会调用侦听器感到困惑。

4

2 回答 2

0

经过长时间的研究和测试,我终于意识到监听器范围是直到应用程序运行或活动处于运行状态。

关闭应用程序后,您的 onPreferenceChangeListener 将不会监听任何事件。

可能对其他人有帮助。

总之谢谢大家。

于 2012-09-11T16:28:47.100 回答
0

如果您想接收有关设置更改的通知,无论 Activity 状态如何,那么我建议您扩展Application对象并将您的侦听器代码移到那里,就像您应该在其中注册您的侦听器onResume()并取消注册的活动一样onPause()。因此,如果用户不在(这是她/他启动首选项活动的情况),您将不会收到通知。

于 2012-09-11T08:54:39.593 回答