SharedPreferences检索停止代码

时间:2016-01-18 03:17:41

标签: android sharedpreferences

我有一个广播接收器类,可以在手机重启时成功运行。我的问题是,当我尝试从SharedPreferences检索信息时,代码停止运行,没有任何继续。这是onReceive方法的开始:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
    if(sp.getBoolean("alarmRunning", false)) {
        Log.d("test", "Fixing alarms1");
        String name = sp.getString("currentName", "");
        String description = sp.getString("currentDescription", "");
        long exactTriggerTime = sp.getLong("exactTriggerTime", 0);
        long offsetTriggerTime = sp.getLong("offsetTriggerTime", 0);
        String intentNameExtra = sp.getString("intentNameExtra", "");
        String intentDescriptionExtra = sp.getString("intentDescriptionExtra", "");
        boolean runOnce = sp.getBoolean("runOnce", true);
        long interval = sp.getLong("interval", 0);
        long totalOffset = sp.getInt("totalOffset", 0);
        Log.d("test", "Fixing alarms");
        Log.d("test", String.valueOf(runOnce));

当我在手机上运行时,我将“Fixing alarms1”返回给我,但不是“修复警报”或runOnce变量的值。有人可以解释这种行为吗?它不应该因为找不到东西而破坏,因为一切都有默认值。我还使用测试过滤器和没有过滤器检查了控制台,并且没有显示错误消息。

编辑:经过进一步的测试,我意识到它不喜欢从SharedPreferences中获取一个int变量并将其分配给long。我的坏。

0 个答案:

没有答案