我来自iOS世界,是Android开发的新手。 我的问题是这样:
我正在使用Android应用程序,必须将数据保存在本地数据库中。 因此,我为此选择了房间类别。 在iOS中,相当于Room的是CoreData,当我通过它进行一些操作(例如,插入或删除操作)时,我有两个回调:一个用于成功,另一个用于失败。
我在Room系统中看不到此信息,但是我可以执行插入操作并 我不知道此操作何时结束,最重要的是操作是否成功或失败。
现在我只创建Dao和Database类(以及一个实体)
public abstract class LuxuryAppDatabase extends RoomDatabase
{
public abstract DatabaseLocale dbDao();
}
@Dao
public interface DatabaseLocale
{
@Insert(onConflict = OnConflictStrategy.REPLACE)
public void insertChat(ArrayList<Lobby> chats);
@Query("SELECT * FROM Lobby")
List<Lobby> getAllUserChat();
@Query("DELETE FROM Lobby")
public void deleteAllLoobies();
}
例如,我想做类似onClickListener的事情。
我调用插入查询,并且我有一个具有两种方法的侦听器:成功和失败。
您可以帮助我弄清楚哪里出了问题以及是否可以做类似的事情?
答案 0 :(得分:0)
您总是可以让您的插入返回一个Long,它代表条目的自动生成的ID:
@Insert(onConflict = OnConflictStrategy.REPLACE)
public long insertChat(ArrayList<Lobby> chats);
此外,Room通常会在发生任何错误时快速失败-这意味着它将引发异常。您调用Room的方法应根据需要处理任何错误异常。