Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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_Sharedpreferences - Fatal编程技术网

Android 首先返回正确的值后,从SharedReference获取空值

Android 首先返回正确的值后,从SharedReference获取空值,android,sharedpreferences,Android,Sharedpreferences,我为服务类中的共享首选项创建了set和get方法。第一次运行良好,就像它第一次返回正确的值,但之后返回空值 我的代码: public class ServiceClass extends Service { @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags

我为服务类中的共享首选项创建了set和get方法。第一次运行良好,就像它第一次返回正确的值,但之后返回空值

我的代码:

public class ServiceClass extends Service {

    @Override
    public void onCreate() {
        super.onCreate();

    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        context=getApplicationContext();


        return START_STICKY;
    }


    @Override
    public void onDestroy() {
        super.onDestroy();
        LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent("Notification"));
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }


    //sharedpreference
    public static void setDefaults(String key, String value, Context context) {
        SharedPreferences prefs =
                PreferenceManager.getDefaultSharedPreferences(context);

        SharedPreferences.Editor editor = prefs.edit();

        editor.clear();

        editor.putString(key, value);

        editor.apply();
    }

    public static String getDefaults(String key, Context context) {

        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

        return preferences.getString(key, null);
    }

    public static void ClearAllPreferences(Context context){

        //remove all your prefs
        context.getSharedPreferences("prefs", 0).edit().clear().commit();
    }
}

我不明白为什么会发生这个问题。我试了很多,但没有找到解决办法。请帮我解决这个问题

你的编码技术不好试试这段代码,它会很好用的

public class ServiceClass extends Service {

Context context;
static SharedPreferences prefs;
static SharedPreferences.Editor editor;

@Override
public void onCreate() {
    super.onCreate();

}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    context = getApplicationContext();
    prefs = context.getSharedPreferences("prefs", MODE_PRIVATE);

    return START_STICKY;
}


@Override
public void onDestroy() {
    super.onDestroy();
    LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent("Notification"));
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}


//sharedpreference
public static void setDefaults(String key, String value, Context context) {
    editor = prefs.edit();
    editor.putString(key, value);
    editor.commit();

}

public static String getDefaults(String key, Context context) {

    return prefs.getString(key, null);
}

public static void ClearAllPreferences(Context context) {

    //remove all your prefs
    prefs.edit().clear().commit();
}

}

您的两个SharedReference不同。1) 当您存储值时2)当您清除sphow时?你能解决这个问题吗?但是同一代码在另一个项目中运行良好wellUse
SharedReferences prefs=PreferenceManager.GetDefaultSharedReferences(上下文)prefs.edit().clear().commit()
还要检查您的上下文不能为
null
@AAA检查以上注释您能告诉我您在哪里以及如何使用此共享首选项吗??另外,请告诉我们有关您的
SharedReferences
usagescore for code skills not good的此项服务的流程@AAA口袋里有很多东西要学。。。一个精确的机会