小编Lor*_*ash的帖子

Room:无法访问主线程上的数据库,因为它可能会长时间锁定UI

在主要活动中,我有LiveData,其中包含成员和单击侦听器.如果我点击一个成员,那么他的ID将通过intent.putExtra传递.该ID稍后将传递给此活动中打开的方法.通过此活动,我想查看成员的详细信息.在我的MemberInfo活动中,我标记了我的问题所在的一行.它向我显示了这个错误:无法访问主线程上的数据库,因为它可能会长时间锁定UI.

我的DAO包含以下代码:

@Query("SELECT * FROM member_table WHERE MemberID=:id")
Member getMemberInfo(long id);
Run Code Online (Sandbox Code Playgroud)

这是我的主要活动:

public class MemberMainActivity extends AppCompatActivity implements MemberListAdapter.MemberClickListener{

private MemberViewModel mMemberViewModel;
private List<Member> mMember;

void setMember(List<Member> members) {
    mMember = members;
}

public static final int NEW_MEMBER_ACTIVITY_REQUEST_CODE = 1;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_member);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(MemberMainActivity.this, NewMemberActivity.class);
            startActivityForResult(intent, NEW_MEMBER_ACTIVITY_REQUEST_CODE);
        }
    });

    RecyclerView recyclerView = …
Run Code Online (Sandbox Code Playgroud)

android

7
推荐指数
4
解决办法
9022
查看次数

Room:如何在 DAO 接口中使用 @Transaction

关于这个问题的答案:如何在我的实体中使用 setBalance 方法来设置成员的实际余额值?

答案建议使用@Transaction 方法。我不明白如何使用这种方法。另外,我的 DAO 是一个接口,答案的 DAO 是一个抽象。

如何将答案中建议的方法实现到我的接口 DAO 中,然后再到存储库中?

在此处输入图片说明

在此处输入图片说明

android android-room

6
推荐指数
1
解决办法
3213
查看次数

标签 统计

android ×2

android-room ×1