2014-03-05 35 views
1

Iam因此問題持續了4個多小時,iam無法傳遞Service類中sharedPrefernce的更新值。無法接收來自Android服務中的sharedPreference的更新值

public class Background extends Service { 
..... 
..... 
public int onStartCommand(Intent intent, int flags, int startId) 
{ 
    return Service.START_STICKY; 
} 
.... 
.... 
private void callService() { 
    String prefCount=getSharedData("list_update_count"); 
    myb = new myBroad(); 
    Context context = this.getApplicationContext(); 
    myb.SetAlarm(context,prefCount); 
} 
.... 
.... 
public class myListener extends PhoneStateListener 
{ 
    @Override 
    public void onCallStateChanged(int state, String incomingNumber) 
    { 
     super.onCallStateChanged(state, incomingNumber); 
     if (state == TelephonyManager.CALL_STATE_IDLE) 
     { 
      String phoneNumber = incomingNumber; 
      callService(); 
     } 
    } 

} 

My BroadcastReceiver ----------------------------------------- -

public class myBroad extends BroadcastReceiver{ 
    ..... 
    ..... 
    ..... 
    public void onReceive(Context context, Intent intent) { 
    .... 
    ..... 
    } 
    public void SetAlarm(Context context,String prefCount){ 
     //here the prefCount is not receiving the updated value!! 
    buildToast(prefCount,context); 
    } 
..... 
} 

當我在強制停止後啓動應用程序時,正確獲得了來自sharedPreference的更新值。 謝謝...

+0

把你的logcat的信息在這裏 –

+0

我不能看到logcat的O/P .IM任何不熟悉的logcatthat¡ – Shan

+0

的也許是因爲粘貼您的日誌貓這裏解決錯誤 –

回答

1

你試試這個?

SharedPreferences preferences = getSharedPreferences("preferences", Context.MODE_MULTI_PROCESS); 

對不起,全球是我自己的類,它包含在我的項目中使用常量,更換Global.PREFERENCES你自己的SharedPreferences的名稱。

+0

你可以請好嗎?關於Global.PREFERENCES,請。 。 – Shan

+0

YeahHHH,它的工作夥伴!你是我的英雄:) – Shan

+0

保存我的一天..謝謝@ user3381480 –

1
SharedPreferences pref = getSharedPreferences("MyPreference", 0); 
    String prefCount = pref.getString("list_update_count", 0) 

或者如果您使用的是默認sharedPreferences

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); 
String prefCount = pref.getString("list_update_count", 0); 
相關問題