首页 > 解决方案 > 使用 Android Room Insert AsyncTask 时如何获取插入 ID?

问题描述

如何在活动中读取 insertId?活动:

private void saveNewCode() {
    mCodeRepository.insertCodeTask(mInitialCode);
}

在存储库插入代码中:

public void insertCodeTask(Code code) {
        new InsertAsyncTask(myDatabase.getCodeDao()).execute(code);
    }

插入异步任务:

public class InsertAsyncTask extends AsyncTask<Code, Void, Void> {
    private static final String TAG = "InsertAsyncTask";
    private CodeDao mCodeDao;
    private long insertId;


    public InsertAsyncTask(CodeDao dao) {
        mCodeDao = dao;
    }

    @Override
    protected Void doInBackground(Code... codes) {
        insertId = mCodeDao.insertCode(codes);
        return null;
    }
}

如何将 insertId 传递给 Activity?实现接口或者onPostExecute方法,但是应该怎么传回Activity呢?谢谢。

标签: androidandroid-asynctaskandroid-room

解决方案


推荐阅读