ちょっと考えてみた13

Roomを使用したデータベースを使ったアプリ作成において、DAOクラスのメソッドを、UI作成を含むメインのスレッドでは使えない。

現在は、AsyncTaskクラスを使っているが、どうもしっくりこない。理由は、データベースから得られたデータをList<Entityクラス>で受け取る過程が、doInBackground()メソッド内での記述であり、List<Entityクラス>のオブジェクトをローカル変数としてしか使えず、メインのスレッドに呼び込むことがどうしてもできませんでした。

メインスレッドにList<Entityクラス>のオブジェクトを呼び込むには、やはり、Callableを使うことになるのかなと思い試しましたがうまくいきませんでした。

そこで、Runnable、Handler、Messageを使う方法を知りましたので、それでやってみました。

【Java】Handlerクラスについてまとめてみました | RE:ENGINES