在房间中,删除注释不会发出任何信息。这就是dao的样子
@Dao
public interface UserDao {
@Delete
void deleteUser(User user);
//We can't use Maybe or Single or anything here
}
这使得它在做类似的事情时成为一个问题
userRepository.deleteUser(). subbeOn
因为我们没有道
的发射。我使用以下代码在后台线程上调用deleteUser。
Observable.just(appDatabase).
subscribeOn(SchedulerProvider.getInstance().computation()).
subscribe(db -> {
userRepository.logoutUser(loggedUser.getLoggedInUser());
loggedUser.setLoggedInUser(null);
}, this::handleError);
这工作正常。但是,在订阅方法中,我现在需要访问AndroidUI来显示一个宣布成功删除的祝酒词。自然,我得到了这个异常(因为链中缺少观察)
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
然而,当我像这样放置观察
Observable.just(appDatabase).
subscribeOn(SchedulerProvider.getInstance().computation()).
observeOn(SchedulerProvider.getInstance().ui()).
subscribe(db -> {
userRepository.logoutUser(loggedUser.getLoggedInUser());
loggedUser.setLoggedInUser(null);
Message message = new Message(R.string.user_logged_out_msg);
message.setMessageType(Message.MessageType.SUCCESS_MESSAGE);
view.showMessages(Arrays.asList(message)); //this leads to a taost
}, this::handleError);
我奇怪地发现了这个例外:
cannot access database on the main thread since it may potentially lock the UI for a long period of time.
替换可观察的只是方法来创建。
Observable.create(new ObservableOnSubscribe<Object>() {
@Override
public void subscribe(@io.reactivex.annotations.NonNull ObservableEmitter<Object> e) throws Exception {
e.onNext(tileDatabase.getCategoryDeo().deleteCategory(category));
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Object>() {
@Override
public void onSubscribe(@io.reactivex.annotations.NonNull Disposable d) {
}
@Override
public void onNext(@io.reactivex.annotations.NonNull Object o) {
Toast.makeText(MainActivity.this, "Record deleted ", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(@io.reactivex.annotations.NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
我知道现在很晚了。但我遇到了同样的问题,并通过以下方法解决了它
在道课上
@Query("DELETE FROM users")
fun deleteAllUser()
像这样称呼它。这样您就可以订阅,它将在后台运行。
Single.fromCallable {
user.deleteAllUser() //User Dao fun
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(..do stuff..)
基于此问题的信息:在后台运行Void方法(StackOverflow)
使用Completable并在另一个线程上订阅,如下所示:
Completable.fromAction(this::clearCachedData)
.subscribeOn(Schedulers.io())
.subscribe();
为我工作。clearCachedData
方法在我正在调用的Room中执行查询。
我的查询是:
/**
* Delete all data in the items table.
*/
@Query("DELETE FROM items")
void deleteWeatherItems();
我让troble从Laravel项目中删除一个文件。该文件位于/storage/exports目录下,它是一个使用Laravel excel库存储在磁盘上的excel。这是我的代码: 当我检查文件的存在与file_exist我得到真,所以Laravel是能够读取文件。我还检查了该文件夹的权限,我使用chmod 777给出了该文件夹的所有权限。 谢谢!
问题内容: 我只想删除第三行中值为‘0’的行。数据示例如下: 因此,第一行将需要删除,而第二行将保留。 到目前为止,我所拥有的如下: 任何帮助都会很棒 问题答案: 你很亲密 目前,您将整数与进行比较,然后将其与字符串进行比较。当您从文件中读取数据时,它是一个字符串而不是整数,因此这就是您的整数检查当前失败的原因: 另外,您可以使用关键字使当前代码略显pythonic,从而减少代码中的行,并且可以省
我正在使用gradle构建一个Spring Boot应用程序,我希望从war中删除文件,因为该文件将从外部加载(它运行在tomcat容器中,而不是嵌入式的)。 我查看了StackOverflow和Gradle文档,试图找出该做什么,但我不知道该绑定到哪个阶段,以及在创建war之前还是之后排除该文件。处理文件似乎也有多种方法。 我相信Maven使用作为等价物。
问题内容: 我使用以下crontab记录来每天备份数据库: 我想添加另一个crontab记录,该记录将删除早于一个月的数据库转储。 有什么想法吗? 问题答案: 只需创建另一个cron: 它将查找所有早于30天的备份并将其删除。
问题内容: 有没有一种方法可以对 field1 = x* 和 field2 = y的文档执行删除操作 ? *** 我看到了删除功能,但没有附带。如果使用事务,则存在get和delete,但get似乎不接受“ where”子句。 我希望我在文档中缺少一些内容。 谢谢 问题答案: 为此,您需要先创建所需的查询,然后才使用如下方法:
问题内容: 假设我有一个充满昵称的文本文件。如何使用Python从此文件中删除特定的昵称? 问题答案: 首先,打开文件并从文件中获取所有行。然后以写模式重新打开文件并写回你的行,但要删除的行除外: 你需要在比较中使用换行符,因为如果文件不以换行符结尾,则最后一个line也不行。