在首先返回正确的值后从共享首选项中获取空值

时间:2017-04-06 07:05:14

标签: android sharedpreferences

我在服务类中为共享首选项创建了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();
    }
}

我无法理解问题发生的原因。我已经尝试了很多,但没有找到解决方案。请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

你的编码技巧不好试试这段代码它会正常工作。


if (this.inviteResponse) {
    setTimeout(function() { this.inviteResponse = '' }, 3000);
}

}