Future.delayed(Duration(seconds : 3), (){
_show("起始日期不能大于结束日期!");
} );
创建一个立刻在事件队列里运行的Future:
Future(() => print('立刻在Event queue中运行的Future'));
创建一个延时1秒在事件队列里运行的Future:
Future.delayed(const Duration(seconds:1), () => print('1秒后在Event queue中运行的Future'));
创建一个在微任务队列里运行的Future:
Future.microtask(() => print('在Microtask queue里运行的Future'));
创建一个同步运行的Future:
Future.sync(() => print('同步运行的Future'));
Future<void> _getData() async {
// Map<String, dynamic> res = null;
var result = client.getBanben();
result.then((value){
_newVersion = value.data['versionShort']; // 赋值网络请求的版本号。
_installUrl = value.data['installUrl']; // 赋值网络请请的下载apk地址。
final data = _newVersion.split('.');
_upgradeNewVersion = data.join('');
// print(_notVersion + ' == ' + _upgradeNotVersion);
// print(_newVersion + " == " + _upgradeNewVersion);
// 判断当前网络请求的版本号是否大于当前版本号
if( int.parse(_upgradeNotVersion) < int.parse( _upgradeNewVersion ) ){
// 判断需要更新,则去请求更新接口,获取接口api,获取更新内容。
// 创建 一个同步执行的 Future
// 上面说到本来想判断更新,然后请求更新接口的,发现行不通。则更新接口需要写死在里面。getBanben()
// 如需请求更新接口,则需改写上面的方法。
Future.sync((){
client.getBanbenData().then((value){
Map<String,dynamic> res = json.decode(value.toString());
setState(() {
showData['title'] = res['title'];
showData['data'] = res['data'].split(' ');
});
_show();
});
}) ;
}
});
}