在主要活动中,我有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) 关于这个问题的答案:如何在我的实体中使用 setBalance 方法来设置成员的实际余额值?
答案建议使用@Transaction 方法。我不明白如何使用这种方法。另外,我的 DAO 是一个接口,答案的 DAO 是一个抽象。
如何将答案中建议的方法实现到我的接口 DAO 中,然后再到存储库中?