shared_preferences.dart 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import 'dart:async';
  2. import 'package:shared_preferences/shared_preferences.dart';
  3. /// 用来做shared_preferences的存储
  4. class SpUtil {
  5. static SpUtil _instance;
  6. static Future<SpUtil> get instance async {
  7. return await getInstance();
  8. }
  9. static SharedPreferences _spf;
  10. SpUtil._();
  11. Future _init() async {
  12. _spf = await SharedPreferences.getInstance();
  13. }
  14. static Future<SpUtil> getInstance() async {
  15. if (_instance == null) {
  16. _instance = new SpUtil._();
  17. await _instance._init();
  18. }
  19. return _instance;
  20. }
  21. static bool _beforCheck() {
  22. if (_spf == null) {
  23. return true;
  24. }
  25. return false;
  26. }
  27. // 判断是否存在数据
  28. bool hasKey(String key) {
  29. Set keys = getKeys();
  30. return keys.contains(key);
  31. }
  32. Set<String> getKeys() {
  33. if (_beforCheck()) return null;
  34. return _spf.getKeys();
  35. }
  36. get(String key) {
  37. if (_beforCheck()) return null;
  38. return _spf.get(key);
  39. }
  40. getString(String key) {
  41. if (_beforCheck()) return null;
  42. return _spf.getString(key);
  43. }
  44. Future<bool> putString(String key, String value) {
  45. if (_beforCheck()) return null;
  46. return _spf.setString(key, value);
  47. }
  48. bool getBool(String key) {
  49. if (_beforCheck()) return null;
  50. return _spf.getBool(key);
  51. }
  52. Future<bool> putBool(String key, bool value) {
  53. if (_beforCheck()) return null;
  54. return _spf.setBool(key, value);
  55. }
  56. int getInt(String key) {
  57. if (_beforCheck()) return null;
  58. return _spf.getInt(key);
  59. }
  60. Future<bool> putInt(String key, int value) {
  61. if (_beforCheck()) return null;
  62. return _spf.setInt(key, value);
  63. }
  64. double getDouble(String key) {
  65. if (_beforCheck()) return null;
  66. return _spf.getDouble(key);
  67. }
  68. Future<bool> putDouble(String key, double value) {
  69. if (_beforCheck()) return null;
  70. return _spf.setDouble(key, value);
  71. }
  72. List<String> getStringList(String key) {
  73. return _spf.getStringList(key);
  74. }
  75. Future<bool> putStringList(String key, List<String> value) {
  76. if (_beforCheck()) return null;
  77. return _spf.setStringList(key, value);
  78. }
  79. dynamic getDynamic(String key) {
  80. if (_beforCheck()) return null;
  81. return _spf.get(key);
  82. }
  83. Future<bool> remove(String key) {
  84. if (_beforCheck()) return null;
  85. return _spf.remove(key);
  86. }
  87. Future<bool> clear() {
  88. if (_beforCheck()) return null;
  89. return _spf.clear();
  90. }
  91. }