【问题标题】:Shared Preferences Not Working in BroadcastReceiver共享首选项在 BroadcastReceiver 中不起作用
【发布时间】: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


    【解决方案1】:

    getSharedPreferences()Context 上的一个方法。您可以在传递给您的onReceive() 方法的Context 上调用它。

    【讨论】:

    • telco=context.getSharedPreferences(Telco,Context.MODE_WORLD_READABLE);
    猜你喜欢
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 2016-09-05
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多