我有一个独立于我的应用程序运行的广播接收器。 当一个特定的号码呼叫时,我需要触发一个服务来运行。 我将触发号码保存在我的应用程序中的共享首选项中。 如何在我的广播接收器中获取此值,以便在开始服务呼叫之前检查呼叫号码是否匹配。
我在接收器中尝试了以下代码来检索它:
变量
private SharedPreferences preferenceSettingsUnique;
private SharedPreferences.Editor preferenceEditorUnique;
private static final int PREFERENCE_MODE_PRIVATE = 0;
private static final String MY_UNIQUE_SETTINGS = "MY_UNIQUE_SETTINGS";
在我的功能中
preferenceSettingsUnique = getSharedPreferences(MY_UNIQUE_SETTINGS,PREFERENCE_MODE_PRIVATE);
tracker_trigger = preferenceSettingsUnique.getString("tracker_trigger",null);
该值返回null。
如果有人知道这样做的好方法。
编辑显示保存程序
preferenceSettingsUnique = getSharedPreferences(MY_UNIQUE_SETTINGS,PREFERENCE_MODE_PRIVATE);
preferenceEditorUnique = preferenceSettingsUnique.edit();
final EditText trackertrigger_Field = (EditText) findViewById(R.id.Editsmstrigger);
preferenceEditorUnique.putString("tracking_trigger",trackertrigger_Field.getText().toString());
boolean Success = preferenceEditorUnique.commit();
if(Success){
//ALERT MESSAGE
Toast.makeText(getBaseContext(),"Successfully Saved Settings.", Toast.LENGTH_LONG).show();
super.onBackPressed();
}
答案 0 :(得分:0)
您使用键tracking_trigger
在偏好设置中保存数据,但在从偏好设置中检索数据时,您尝试获取与不存在的键tracker_trigger
相对应的数据。这就是为什么总是返回默认值null
的原因。只需使两个键都相同即可。