Insert sqlite flutter without freezing the interface. Use the below flutter example to insert sqlite flutter without freezing the interface.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: Scaffold(body: MyHomePage(title: 'Flutter Demo Home Page')), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ FlatButton.icon( icon: Icon(Icons.backup), label: Text("Long Opreation"), onPressed: () async { var rows = await RsetApi.getRawsAsync(); await Database._saveRaws(rows); }, ), FlatButton.icon( icon: Icon(Icons.backup), label: Text("Short Opreation"), onPressed: () { Scaffold.of(context).hideCurrentSnackBar(); Scaffold.of(context).showSnackBar(new SnackBar( content: new Text(DateTime.now().toIso8601String()), )); }, ), ], ), ), ); } } class RsetApi { static Future<List<EventSong>> getRawsAsync() { return compute(_getRaws, null); } static List<EventSong> _getRaws(pram1) { var rows = List<EventSong>(); for (var i = 1; i < 12000; i++) { rows.add(EventSong(i)); print("fetching raws " + (i / 12000).toString()); } return rows; } } class Database { static Future saveRawsAsync(List<EventSong> rows) { return compute(_saveRaws, rows); } static _saveRaws(List<EventSong> rows) { for (var i = 1; i < rows.length; i++) { print("saving raws " + (i / rows.length).toString()); } } } class EventSong { int id; EventSong(this.id); } |
If you like this question & answer and want to contribute, then write your question & answer and email to freewebmentor[@]gmail.com. Your question and answer will appear on FreeWebMentor.com and help other developers.