Flutter状态保存机制
·
对于不熟悉状态恢复需求的用户: 移动操作系统可能会终止后台应用以回收资源供前台应用使用。发生这种情况时,操作系统会通知该应用即将被终止以便其快速保存界面状态,从而在用户切换回该应用时能够恢复。正确实现该操作后,既能为用户提供无缝体验,也可以更好地利用设备资源。Flutter 此前尚不支持状态恢复,因为在不具备框架支持的情况下很难正确地实现状态恢复。正因如此,我们很高兴能够在 Android 平台中提供此功能的基础实现。
看完后的理解如下:
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
public void onRestoreInstanceState(@Nullable Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
类似于这样子的来恢复数据的。
下面是一段官方示例:
class CounterState extends State<RestorableCounter> with RestorationMixin {
@override
String get restorationId => widget.restorationId;
RestorableInt _counter = RestorableInt(0);
@override
void restoreState(RestorationBucket oldBucket) => registerForRestoration(_counter, 'count');
void _incrementCounter() => setState(() => _counter.value++);
@override
Widget build(BuildContext context) => Scaffold(
body: Center(child: Text('${_counter.value}')),
floatingActionButton: FloatingActionButton(onPressed: _incrementCounter),
);
}
大致意思是说通过新的数据类型来存储数据:RestorableProperty,文章中使用了RestorableInt,当然也有RestorableDouble,RestorableString,和 RestorableTextEditingController等等来供我们使用,不够还可以通过RestorableProperty来自行扩展,目的是为了用户更好的体验。
该功能还未发布,在测试阶段,将在 Flutter 的下一个稳定版本中正式发布。
更多推荐
所有评论(0)