如何在广播接收器中存储字符串/整数值。

时间:2015-06-13 12:10:37

标签: android broadcastreceiver sharedpreferences

我有一个接收器扩展了广播接收器。我从主要活动传递字符串值。当活动创建它时,它将值传递给receiver.I可以接收该字符串值。但我的问题是,我无法保存该字符串值。

我在广播接收器中尝试了与上下文的共享偏好,但它无法正常工作。

我的收件人代码就在这里。

public void onReceive(Context context, Intent intent)
{


  if(intent.getAction().equals("my.action.string")){
         state = intent.getExtras().getString("value");

         Toast.makeText(context, "this is state : " + state, Toast.LENGTH_SHORT).show();

        SharedPreferences prefs = context.getSharedPreferences("myPrefs", Context.MODE_PRIVATE);
                Editor editor = prefs.edit();
                editor.putString("state_lock", state);
                editor.commit();

            p = prefs.getString("state_type", state);
      Toast.makeText(context, "the state type is : "+ p, Toast.LENGTH_SHORT).show();
}

使用此代码,我只能获取数据,但无法存储它们。

任何人都可以帮助我。如何在Broadcast Receiver中存储数据。?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

您使用"stae_lock"键值保存数据并使用"state_type"获取数据要获取之前存储的值,请使用相同的键,如

 p = prefs.getString("state_lock", state);

答案 1 :(得分:0)

p = prefs.getString("state_type", state);

而不是使用以下来获取数据

p = prefs.getString("state_lock", state);