Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法从Android服务中的SharedReference接收更新的值_Android_Service_Sharedpreferences - Fatal编程技术网

无法从Android服务中的SharedReference接收更新的值

无法从Android服务中的SharedReference接收更新的值,android,service,sharedpreferences,Android,Service,Sharedpreferences,Iam遇到此问题已超过4小时,无法从服务类中的SharedPreference传递更新的值 public class Background extends Service { ..... ..... public int onStartCommand(Intent intent, int flags, int startId) { return Service.START_STICKY; } .... .... private void callService() { Stri

Iam遇到此问题已超过4小时,无法从服务类中的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();
        }
    }  

}
我的广播接收机------------------------------------------

    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);
    }
.....
}
当我在强制停止后启动应用程序时,从SharedReference获得的更新值是正确的。 谢谢

SharedPreferences pref = getSharedPreferences("MyPreference", 0);
     String prefCount = pref.getString("list_update_count", 0)
或者,如果您使用默认的SharedReference

 SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
 String prefCount = pref.getString("list_update_count", 0); 
你试过这个吗

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

抱歉,Global是我自己的类,包含我项目中使用的常量,请将Global.PREFERENCES替换为您自己的SharedReferences名称。

将您的logcat消息放在此处我在logcat o/p中看不到任何内容。我对logcat不熟悉,可能是因为这个原因-将您的logcat粘贴到此处,这将是更重要的解决方法error@RahulMandaliya,我通过将sharedPref更改为SharedPreferences preferences=getSharedPreferences(“preferences”,Context.MODE\u MULTI\u PROCESS)解决了这个问题;。谢谢您的帮助。很好,如果您有任何问题,请先发表简报,粘贴您的逻辑,然后是logcat错误列表,以便其他人能够准确理解您的意思,请您进行讨论好吗?关于Global.PREFERENCES,请。救了我一天。。谢谢@user3381480MODE\u MULTI\u进程已被弃用。请更新您的答案