main.dart

import 'package:flutter/material.dart';
import 'package:flutter_isolate/flutter_isolate.dart';
import 'isolates.dart';
import 'dbhelper.dart'; void main() {
runApp(MaterialApp(
title: 'Flutter Demo',
initialRoute: '/',
routes: {
'/':(context)=>MyApp(),
'/second':(context)=>NextPage(),
},
));
} class MyApp extends StatefulWidget{
@override
State<StatefulWidget> createState() {
return MyAppState();
}
}
class MyAppState extends State<MyApp> {
FlutterIsolate isoltex;
DB db = DB(); addData()async{
var a = await db.addData('type', {'name':'11maintest'});
print(a);
} checkData()async{
var b = await db.queryData('SELECT * FROM type');
print(b);
}
@override
Widget build(BuildContext context) { return Scaffold(
appBar: AppBar(title: Text('sss'),),
body: Container(child: Column(
children: <Widget>[
RaisedButton(child: Text('addData'),onPressed: ()async{
addData();
},),
RaisedButton(child: Text('check data'),onPressed: ()async{
checkData();
},),
RaisedButton(child: Text('start'),onPressed: ()async{
isoltex = await createIsolate();
},),
RaisedButton(child: Text('pause'),onPressed: (){
isoltex.pause();
},),
RaisedButton(child: Text('resume'),onPressed: (){
isoltex.resume();
},),
RaisedButton(child: Text('kill'),onPressed: (){
isoltex.kill();
},),
RaisedButton(child: Text('go to next'),onPressed: (){
Navigator.of(context).pushNamed('/second');
},) ]),
),
);
}
} class NextPage extends StatelessWidget{
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('page2'),),
body: Container(
child: RaisedButton(child:Text('btn'),
onPressed: (){
print('hello');
}),
),
);
}
}

  

isolates.dart

import 'dbhelper.dart';
import 'package:flutter_isolate/flutter_isolate.dart';
import 'dart:async';
import 'dart:isolate'; Future<FlutterIsolate> createIsolate() async { ReceivePort receivePort = ReceivePort(); FlutterIsolate isolate = await FlutterIsolate.spawn(
isolateEntry,
receivePort.sendPort,
);
receivePort.listen((value){
print('from spawrn side: $value');
});
return isolate;
} isolateEntry(SendPort sendPort)async{ DB db = DB();
int i=0;
while (i<40){
var d = await db.addData('type', {'name':'$i'});
i++; sendPort.send('ok $d');
await Future.delayed(Duration(seconds: 1));
}
}

  

another  https://blog.csdn.net/PD_Wang/article/details/80165265

最新文章

  1. 初识WEB:输入URL之后的故事
  2. MySQL索引原理及慢查询优化 转载
  3. python pexpect 学习与探索
  4. Hibernate,JPA注解@OneToMany_Set
  5. PMP考试--关于职业道德
  6. map的两种取值方式
  7. [Android][Android Studio] *.jar 与 *.aar 的生成与*.aar导入项目方法
  8. 教你看懂邮件头信息&lt;转载&gt;
  9. SGU 168.Matrix
  10. linux mount命令学习
  11. java中怎么解决路径中文的问题
  12. Linux查看文件最后几行的命令,日志的福音啊
  13. php的ob函数实现页面静态化
  14. ASP.NET 使用Session,避免用户F5刷新时重复提交(转)
  15. 第45章:MongoDB-集群--Sharding(分片)--分片的管理
  16. linux驱动开发(四) 字符设备驱动框架(自动创建设备节点)
  17. shell 网络状态查询 ping curl telnet
  18. Perl中的哈希(四)
  19. vi如何修改注释颜色
  20. (2.5)DDL增强功能-触发器trigger

热门文章

  1. fastJson反序列化参数为null的问题
  2. 使用良好的自定义X264编码,取得极佳质量!《转》
  3. Unity3D特效入门教学视频教程合集
  4. P1981 表达式求值
  5. hive中function函数查询
  6. Android : Camera HAL3的参数传递(CameraMetadata)
  7. 泡泡一分钟:BLVD: Building A Large-scale 5D Semantics Benchmark for Autonomous Driving
  8. Spring cloud微服务安全实战-7-9自定义日志采集的格式和内容
  9. DateUtil(2)
  10. 转 mysql 备份导致 waiting for global read lock