【发布时间】:2014-09-01 16:29:02
【问题描述】:
我有一个使用共享首选项的应用。它在活动中运行良好。但是,相同的 SharedPreference 方法在 BroadcastReceiver 或 Service 中不起作用。
示例活动工作正常:
import android.content.SharedPreferences;
public class SetTelco extends Activity implements OnClickListener, OnItemSelectedListener {
public static final String Telco="Telco";
public static String phoneNum;
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
// An item was selected. You can retrieve the selected item using
//parent.getItemAtPosition(pos).toString();
String phoneNum = getResources().getStringArray(R.array.country_short_codes)[parent.getSelectedItemPosition()];
SharedPreferences telco=getSharedPreferences(Telco,Context.MODE_WORLD_READABLE);
SharedPreferences.Editor telcoEdit=telco.edit();
telcoEdit.clear();
telcoEdit.putString(Telco, phoneNum);
//Toast.makeText(getApplicationContext(), phoneNum, 5000).show();
telcoEdit.commit();
}
}
===========================
广播接收器示例:
Eclipse 给我一个错误: 此行有多个标记 - 字段 Context.MODE_WORLD_READABLE 已弃用 - 方法 getSharedPreferences(String, int) 未为 SetAlarms 类型定义
import android.content.SharedPreferences;
public class SetAlarms extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
SharedPreferences telco=getSharedPreferences(Telco,Context.MODE_WORLD_READABLE);
String phoneNum="Empty";
phoneNum=telco.getString(Telco,"Empty");
.
.
.
sms.sendTextMessage(phoneNum, null, sendMsg, null, null);
}
}
不知道有什么区别。根据文档,SharedPreferences 应该适用于所有组件、活动和服务。
任何帮助表示赞赏。
【问题讨论】:
标签: android broadcastreceiver sharedpreferences