我有一个接收器扩展了广播接收器。我从主要活动传递字符串值。当活动创建它时,它将值传递给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中存储数据。?提前谢谢。
答案 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);