Android SharedReferences检索停止代码
我有一个广播接收器类,在手机重新启动时成功运行。我的问题是,当我试图从SharedReferences检索信息时,代码停止运行,什么也不会继续。这是onReceive方法的开始:Android SharedReferences检索停止代码,android,sharedpreferences,Android,Sharedpreferences,我有一个广播接收器类,在手机重新启动时成功运行。我的问题是,当我试图从SharedReferences检索信息时,代码停止运行,什么也不会继续。这是onReceive方法的开始: SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); if(sp.getBoolean("alarmRunning", false)) { Log.d("test", "Fixing alar
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”,而不是“Fixing alarms”或runOnce变量的值。有人能解释一下这种行为吗?它不应该因为找不到东西而坏掉,因为所有东西都有它的默认值。我还检查了带有测试过滤器和不带过滤器的控制台,没有显示错误消息
编辑:在进一步测试之后,我意识到它不喜欢从SharedReferences中获取一个int变量并将其分配给一个long。我的错。为什么
长总偏移量
但使用sp.getInt
方法?尝试getLong
。那么日志猫怎么说呢?是的,那是我的问题。我没有意识到我尝试了很长时间拉整数。那么,这解决了问题吗?是的,它解决了问题。