import 'package:shared_preferences/shared_preferences.dart'; class SpTool { static SharedPreferences? _instance; static final String _basePrefix = "app."; static Future? _instanceFuture; static Future getInstance() { if (_instance != null) { return Future.value(_instance); } _instanceFuture ??= SharedPreferences.getInstance().then((prefs) { _instance = prefs; return prefs; }); return _instanceFuture!; } void setString(String key, String value) async { final prefs = await getInstance(); prefs.setString("$_basePrefix$key", value); } Future getString(String key) async { final prefs = await getInstance(); return prefs.getString("$_basePrefix$key") ?? ''; } void setBool(String key, bool value) async { final prefs = await getInstance(); prefs.setBool("$_basePrefix$key", value); } Future getBool(String key) async { final prefs = await getInstance(); return prefs.getBool("$_basePrefix$key") ?? false; } void setInt(String key, int value) async { final prefs = await getInstance(); prefs.setInt("$_basePrefix$key", value); } Future getInt(String key) async { final prefs = await getInstance(); return prefs.getInt("$_basePrefix$key") ?? 0; } void deleteKey(String key) async { final prefs = await getInstance(); prefs.remove("$_basePrefix$key"); } }