flutter - 在 Flutter 中上传 JSON 请求作为后台任务
问题描述
我有一个要求,我想将 JSON 请求数据(从数据库表中获取)上传到服务器并获取响应,基于响应我必须更新本地数据库(sqflite: ^1.2.1)。我有多个屏幕,我需要根据用户操作在每个屏幕上创建不同的 JSON 请求数据。目前对于相同的场景,我在我的另一个原生 android 应用程序中使用 Intent Service。在 Flutter Android 应用程序中处理此类场景的基本方法是什么。如果我使用通道并实现 Intent 服务,则无法访问 Android 特定区域中的 sqflite 数据库。如果互联网不可用,那么我必须继续等待连接,当设备连接时,我需要将所有创建的事件一一上传到服务器。
请有人告诉我在Flutter中处理这种特定场景的可能方法。
提前致谢
解决方案
我得到了解决方案:我能够通过渠道以本机方式访问 SQFlite 数据库。
这是flutter创建的数据库的路径
"/data/data/{package name}/app_flutter/{database file name}"
所以我们可以像原生一样使用通道访问
SQLiteDatabase mDatabase= SQLiteDatabase.openDatabase("/data/data/{package name}/app_flutter/{database file name}", null, 0);
Log.i("MainActivity", "mDatabase.isOpen():"+mDatabase.isOpen());//check DB is open or not
String query = "SELECT * FROM {Table Name}";
Cursor cursor=mDatabase.rawQuery(query,null);
if (cursor.moveToFirst()){
do{
String data= cursor.getString(cursor.getColumnIndex({Table Column Name}));
Log.i("MainActivity", "Column Data Value:"+data);
}while(cursor.moveToNext());
}
cursor.close();
所以我会在本机中实现Service来实现这个场景。谢谢你
推荐阅读
- forms - 呈现 form_widget 的所有帮助文本
- android-studio - 如何修复“\app\src\main\res\drawable-v24\ic_launcher_foreground.xml:1: error: not well-formed (invalid token)”。
- javascript - 是否可以将 JS 函数导入 js.erb 文件?
- react-native - React Native:注销时重定向到另一个堆栈导航
- spring - 转发到服务时如何禁用 Zuul 修改请求 URL?
- angular - Angular 7.2.2 HTTP 后响应
- redux - 在对话框中嵌套的连接组件中找不到“存储”错误
- sql - 如果客户连续购买了 3 次相同的产品,如何选择行
- webpack - 如何修复 webpack devServer 代理的 ETIMEDOUT(忽略企业代理?)
- css - 每侧带有标签的离子切换