Room 未向表中插入数据

2024-04-05

有趣的是,它有时会正确执行插入操作。我不知道为什么以及如何会发生这种情况。所以,我无法弄清楚我在哪里犯了错误。 这是我的项目文件。

1)SentFilesDao.java

@Dao
public interface SentFilesDao {
    @Query("SELECT id, name, type, status, dateTime FROM sent")
    LiveData<List<SentFilesEntity>> getAllSentFiles();

    @Insert(onConflict = OnConflictStrategy.IGNORE)
    void insert(SentFilesEntity file);

    @Query("DELETE FROM sent")
    void deleteAllRecords();
}

2)SentFilesRepository.java

public class SentFilesRepository {
    private SentFilesDao mSentFilesDao;
    private LiveData<List<SentFilesEntity>> mAllSentFiles;

    SentFilesRepository(Application application) {
        AppDatabase db = AppDatabase.getDatabase(application);
        mSentFilesDao = db.mSentFilesDao();
        mAllSentFiles = mSentFilesDao.getAllSentFiles();
    }

    LiveData<List<SentFilesEntity>> getAllSentFiles() { return mAllSentFiles; }

    public void insert(SentFilesEntity sentFilesEntity) {
        new SentFilesRepository.insertAsyncTask(mSentFilesDao).execute(sentFilesEntity);
    }

    private static class insertAsyncTask extends AsyncTask<SentFilesEntity, Void, Void> {
        private SentFilesDao mAsyncTaskDao;

        insertAsyncTask(SentFilesDao dao) {
            mAsyncTaskDao = dao;
        }

        @Override
        protected Void doInBackground(final SentFilesEntity... params) {
            mAsyncTaskDao.insert(params[0]);
            Log.e("doInBackground: ", "reached here!"); // no any log in Logcat about this. Weird...
            return null;
        }
    }
}

3)SentFilesEntity.java

@Entity(tableName = "sent")
public class SentFilesEntity {
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "id")
    public int s_f_id;

    @ColumnInfo(name = "name")
    public String s_f_name;

    @ColumnInfo(name = "type")
    public String s_f_type;

    @ColumnInfo(name = "status")
    public String s_f_operation_status;

    @ColumnInfo(name = "dateTime")
    public String s_f_time;
}

4)SentFilesViewModel.java

public class SentFilesViewModel extends AndroidViewModel {
    private SentFilesRepository mRepository;
    private LiveData<List<SentFilesEntity>> mAllSentFiles;

    public SentFilesViewModel(Application application) {
        super(application);
        mRepository = new SentFilesRepository(application);
        mAllSentFiles = mRepository.getAllSentFiles();
    }

    public LiveData<List<SentFilesEntity>> getAllSentFiles() { return mAllSentFiles; }

    public void insert(SentFilesEntity sentFile) { mRepository.insert(sentFile); }
}

我正在尝试做的事情:

我的程序通过 WiFi Direct 将选定的文件从一台设备发送到另一台设备。当文件接收或发送时,我想保存一些有关文件的信息(例如文件名、文件类型(图像、视频、音乐、APK等)、发送/接收日期和时间)和操作(成功或失败)。我可以处理所有这些事情。

问题是什么?

好吧,获取所有属性(我上面提到的那些)并不是end。主要问题是将数据保存到数据库中。为此,我创建了一些必需的文件(我在上面共享了它们的代码)。发送文件时,我试图将相关信息插入数据库。但它不插入它。这就是我的问题。

好吧,主要代码太长,无法在这里发布。不过,我将最新的代码发布到我的 GitHub 项目和主要逻辑从这里开始 https://github.com/mirjalal/MickiNet/blob/master/app/src/main/java/com/talmir/mickinet/activities/HomeActivity.java#L248它连接到FileStatisticsActivity.

p.s:也许共享项目链接不是ethic,我对此感到非常抱歉。

Thanks.


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Room 未向表中插入数据 的相关文章

随机推荐

  • 如何根据 MVC 中的控制器隐藏共享布局中的元素

    我的页面主页顶部有一个引导导航栏 里面有一个文本输入 我希望它隐藏 直到执行搜索并且用户在搜索结果中看到结果results控制器 这是我的引导导航栏内
  • LogEntries 记录的 Heroku 路由器错误 H13

    我试图弄清楚我经常从 LogEntries 收到的这些错误是否值得担心 我有一个 iPhone 应用程序 可以与 heroku 上的 Rails API 进行交互 我使用 HireFire 自动增加和减少应用程序所需的测功机和工作人员的数量
  • 停止 Visual Studio 2010 在设计模式下打开 XSD

    Visual Studio 2010 现在默认在设计模式下打开 XSD 文件 我找不到任何禁用此功能的选项 有没有办法始终以文本模式打开 XSD 文件 右键单击 XSD 文件 选择 打开方式 并选择适当的选项 然后在实际打开它之前单击 设置
  • django admin 中的通用多对多关系

    我在 Django 中有几个类似的模型 class Material models Model title models CharField max length 255 class Meta abstract True class New
  • C语言中如何判断数组中某个元素是否为空?

    在 C 中如何检查数组中的元素是否为空 if array i NULL 似乎不起作用 你是什 么意思empty 当执行 C 程序时 未显式初始化的变量会获得不可预测的值 您需要将所有数组单元格设置为 NULL 或设置为 0 或设置为程序逻辑
  • 从 Java 调用 PHP 方法 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要从 java 调用 PHP 方
  • 当 Activity 不在前面时,暂停 Android 中的 CountDownTimer

    我有一个使用从 10 开始倒数的 CountDownTimer 的活动 当该活动不再处于焦点时 例如用户接到电话或其他情况 如何暂停该计时器 然后在用户返回时恢复计时器活动 这可能吗 我会向 onTick 处理程序添加一些内容 以保存类中计
  • 删除 Torch 张量中的行

    我有一个火炬张量如下 a tensor 0 2215 0 5859 0 4782 0 7411 0 3078 0 3854 0 3981 0 5200 0 1363 0 4060 0 2030 0 4940 0 1640 0 6025 0
  • 编写替换背景图像的用户脚本

    这是代码 UserScript name Wood Background namespace http www nationstates net nation ellorn description Changes background to
  • 无法使用参数列表在 Swift 2 中调用“sendAsynchronousRequest”

    我目前正在重写部分 Swift 1 2 代码以与 Swift 2 0 兼容 实际上我无法弄清楚对 sendAsynchronousRequest 进行了哪些更改 目前我的所有请求都失败了 NSURLConnection sendAsynch
  • 使用 FFmpeg 创建静音视频和黑屏视频

    我正在尝试使用 FFmpeg 从本地 mp4 文件生成以下内容 原始视频的副本 无音频 原始视频的副本 带有音频但没有视觉效果 而是黑屏 该文件还需要是 mp4 格式 阅读完文档后 我正在努力使终端命令正确 要删除音频 我尝试了此命令但没有
  • SupportMapFragment 与 MapFragment 性能对比

    之间有什么区别吗支持MapFragment http developer android com reference com google android gms maps SupportMapFragment html and 地图片段
  • 确定应用程序是 WinForms 还是 WebForms

    有没有办法在运行时确定运行的应用程序是WinForms还是Web Edit 如果我同时引用两者 实际上是否有问题System Web and System Windows Forms在我的班级图书馆里 概括 迄今为止 到目前为止我学到了什么
  • C# 中的计时器初始化和竞争条件?

    我在里希特的书中看到了这段代码 下面的代码演示了如何进行线程池线程调用 该方法立即启动 然后每 2 秒启动一次 1 internal static class TimerDemo 2 3 private static Timer s tim
  • 是否可以根据模板类型参数的嵌套 typedef 的存在来专门化模板定义?

    我有一个模板 template
  • 不相关的锁定语句之后的读指令是否可以移到锁定之前?

    这个问题是评论的后续this https stackoverflow com questions 40979715 do semaphores prevent instruction reordering thread 假设我们有以下代码
  • 多线程编程中什么是公平性?

    什么是线程公平性或并发 多线程编程中的公平性 我用谷歌搜索过 有很多关于多线程的信息 但不完全是关于公平性的 有人可以解释一下吗 非常欢迎举一个例子 公平性基本上类似于不同线程能够advance无论他们在做什么 100 公平意味着 所有线程
  • 应用 API 响应转换的最佳位置 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在异步操作创建器中 我从服务器获取数据 对于我的用例来说 数据的格式不太好 我需要对其进行转换以在 UI 中使用它 问题 我应该 在数据到达后立
  • MKOverlayRenderer 在地图视图上显示 UIImage

    我正在尝试在 iOS 7 中的地图视图上显示图像 我将 MKOverlayRenderer 子类化如下 MapOverlayRenderer h import
  • Room 未向表中插入数据

    有趣的是 它有时会正确执行插入操作 我不知道为什么以及如何会发生这种情况 所以 我无法弄清楚我在哪里犯了错误 这是我的项目文件 1 SentFilesDao java Dao public interface SentFilesDao Qu