广播接收器

时间:2016-07-19 16:52:15

标签: android

我有一个独立于我的应用程序运行的广播接收器。 当一个特定的号码呼叫时,我需要触发一个服务来运行。 我将触发号码保存在我的应用程序中的共享首选项中。 如何在我的广播接收器中获取此值,以便在开始服务呼叫之前检查呼叫号码是否匹配。

我在接收器中尝试了以下代码来检索它:

变量

   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();
    }

1 个答案:

答案 0 :(得分:0)

您使用键tracking_trigger在偏好设置中保存数据,但在从偏好设置中检索数据时,您尝试获取与不存在的键tracker_trigger相对应的数据。这就是为什么总是返回默认值null的原因。只需使两个键都相同即可。