2014-09-01 55 views
0

我有一個使用sharedpreferences的應用程序。它在活動中正常工作。但是,相同的SharedPreference方法在BroadcastReceiver或Service中不起作用。共享首選項在BroadcastReceiver中不起作用

示例活動正常工作:

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

=========================

實施例的BroadcastReceiver:

的Eclipse給我一個錯誤:在該行 多個標記 - 現場Context.MODE_WORLD_READABLE已被棄用 - 方法getSharedPreferences(字符串,整數)是未定義的類型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應該在所有組件,活動&服務中工作。

任何幫助表示讚賞。

回答

0

getSharedPreferences()Context上的方法。您可以在傳入onReceive()方法的Context上調用它。

+0

telco = context.getSharedPreferences(Telco,Context.MODE_WORLD_READABLE); – user2475400 2014-09-01 18:50:41