我正在开发一个扑动应用程序,用户点击按钮,计数器增加一。我想在一天后将计数器的值归零。你能告诉我有什么办法可以做到吗?谢谢
z5btuh9x1#
您可以使用flutter_cache包https://pub.dev/packages/flutter_cache/
import 'package:flutter_cache/flutter_cache.dart' as cache; void main() async { // create new cache. cache.remember('key', 'data'); cache.write('key', 'data'); // add Cache lifetime on create cache.remember('key', 'data', 120); cache.write('key', 'data', 120); // load Cache by key // return `defaultValue` if key not exists cache.load('key', 'defaultValue'); // destroy single cache by key cache.destroy('key'); // destroy all cache cache.clear(); await cache.remember('key', () { return 'test'; // or logic fetching data from api; }); // or await cache.remember('key', () => 'test'); cache.remember('key', 'data', 120); // saved for 2 mins or 120 seconds cache.write('key', 'data', 120); // multi depth map datatype. cache.remember('key', { 'name': 'Ashraf Kamarudin', 'depth2': { 'name': 'depth2', 'depth3': {'name': 'depth3'} } }); cache.load('key'); // will return data in map datatype. }
zf9nrax12#
import 'package:flutter/material.dart'; class MyWidget extends StatefulWidget { const MyWidget({super.key}); @override State<MyWidget> createState() => _MyWidgetState(); } class _MyWidgetState extends State<MyWidget> with WidgetsBindingObserver { DateTime? _presedDate; var number = 0; @override void initState() { _presedDate = DateTime.now(); super.initState(); } @override void didChangeAppLifecycleState(AppLifecycleState lifeCycle) async { var _isForeground = (lifeCycle == AppLifecycleState.resumed); if (_isForeground) checkNumber(); super.didChangeAppLifecycleState(lifeCycle); } void checkNumber() { var currenDate = DateTime.now(); var isToday = DateUtils.isSameDay(_presedDate, currenDate); if (!isToday) { number == 0; setState(() {}); } } @override Widget build(BuildContext context) { return SafeArea( child: Scaffold( body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('$number'), TextButton( onPressed: () { number++; setState(() {}); checkNumber(); }, child: Text('incrementNumber')), ], ), ))); } }
2条答案
按热度按时间z5btuh9x1#
您可以使用flutter_cache包https://pub.dev/packages/flutter_cache/
zf9nrax12#