gpt4 book ai didi

android - 无法在后台线程上调用 observeForever

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:10 26 4
gpt4 key购买 nike

我一直在使用 observeForever() 方法,如 here 所述对 Room 和 LiveData 进行了一段时间的测试,它运行得非常完美。但是当我换到 Android Studio 3.2 时(或者如果它是 androidx 重构,不确定),那个方法突然停止工作,抛出一个

java.lang.IllegalStateException: Cannot invoke observeForever on a background thread

我们如何解决这个问题?

最佳答案

我通过添加规则 InstantTaskExecutorRule 解决了这个问题。根据docs它会

A JUnit Test Rule that swaps the background executor used by the Architecture Components with a different one which executes each task synchronously.

所以需要补充

@get:Rule
val instantTaskExecutorRule = InstantTaskExecutorRule()

到测试类让它工作。 Java 等价物是

@Rule
public InstantTaskExecutorRule instantTaskExecutorRule = new InstantTaskExecutorRule();

你还需要添加

androidTestImplementation "androidx.arch.core:core-testing:2.0.0"

到您的模型 build.gradle 依赖项。

关于android - 无法在后台线程上调用 observeForever,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52274924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com